2009-11-01 9 views
9

Tôi mới sử dụng nền tảng iphone và đang tạo một ứng dụng truy xuất nguồn cấp dữ liệu rss và hiển thị nó trong UITableView. Tôi đã nhận được điều này làm việc hoàn hảo (hoặc đúng hơn, theo cách tôi muốn). Những gì tôi đã nghĩ là tôi sẽ lưu trữ các mục nguồn cấp dữ liệu hiện tại trên điện thoại để nó sẽ tải các mục cũ mà nó đã lưu trữ trong khi nó nhận nguồn cấp mới, sau đó phân tích cú pháp nguồn cấp dữ liệu mới và thêm các mục mới và làm mới TableView. Tôi sẽ sử dụng Core Data để lưu trữ các mục nguồn cấp dữ liệu cũ vì đây sẽ là một cách tốt để học Core Data và nó sẽ là một cách sử dụng thích hợp của Core Data. Tuy nhiên, tôi đang gặp khó khăn trong việc học cách sử dụng Core Data và kết nối nó với Table/Array.Mới vào Dữ liệu cốt lõi cho iphone

Tôi đã googled và nhìn vào stackoverflow cho hướng dẫn nhưng vẫn chưa tìm thấy bất cứ điều gì giải thích nó theo một cách tôi thực sự hiểu. Bất kỳ giải thích về các bước tổng thể mà nó cần để thêm dữ liệu cốt lõi cho một ứng dụng hiện có sẽ được đánh giá rất nhiều. Chi tiết đầy đủ là không cần thiết (nhưng cũng sẽ hữu ích). Tôi chỉ không có kinh nghiệm với SQL hoặc lưu trữ dữ liệu theo cách như vậy và đang gặp khó khăn trong việc gói đầu của tôi xung quanh cách toàn bộ khái niệm về Core Data hoạt động và cách nó kết nối với mọi thứ.

Ngoài ra, bất kỳ phương pháp nào tốt hơn để làm những gì tôi đang cố gắng hoàn thành cũng sẽ được đánh giá cao.

Trả lời

8

Có các mẫu Xcode cho các ứng dụng dựa trên dữ liệu cốt lõi; đây là một khởi đầu tuyệt vời để lấy Dữ liệu cốt lõi khỏi mặt đất. Tuy nhiên, có vẻ như bạn muốn tích hợp Dữ liệu cốt lõi vào ứng dụng hiện tại của mình, vì vậy, bạn sẽ cần phải ...

  • Thêm ba đối tượng chính của dữ liệu chính: bối cảnh đối tượng được quản lý (MOC), mô hình đối tượng được quản lý (MOM), và điều phối viên lưu trữ liên tục (PSC). Những thứ này cần phải có thể truy cập ở bất kỳ nơi nào bạn muốn có Dữ liệu cốt lõi, do đó, hoặc trong đại biểu ứng dụng của bạn hoặc, tốt hơn nữa là trong bộ điều khiển hoặc nguồn dữ liệu cho chế độ xem bảng của bạn.
  • Tạo MOM bằng Xcode. Đây sẽ là tệp loại .xcdatamodel và đó là biểu đồ đối tượng xác định tất cả các thực thể Dữ liệu chính mà bạn muốn trong ứng dụng của mình.
  • Sử dụng NSFetchedResultsController (theo đề xuất của Louis Gerbarg) để lấy dữ liệu ra khỏi Dữ liệu cốt lõi và hiển thị dữ liệu đó trong chế độ xem bảng của bạn.
  • Thêm mã trong các thói quen tìm nạp và phân tích cú pháp RSS hiện có của bạn để lưu trữ các đối tượng Dữ liệu cốt lõi mới trở lại cửa hàng, khi thích hợp.

Cách tốt nhất để bắt đầu chỉ là tạo ứng dụng Dữ liệu cốt lõi mới và chơi với nó một chút; bạn cũng có thể xem các tài nguyên tuyệt vời của Apple về chủ đề này, như Core Data Programming Guide và các ứng dụng mẫu RecipesLocations. (Cần phải có đăng ký dành cho nhà phát triển.)

Điều cuối cùng cần lưu ý là phần lớn mã dữ liệu cốt lõi bạn cần thêm có thể được tách ra trực tiếp từ một trong các ứng dụng mẫu Xcode và dán vào chương trình của bạn (điều này đặc biệt đúng đối với các trình truy cập cho ba đối tượng Core Data mà bạn cần). Tuy nhiên, hãy cẩn thận không sử dụng mã mà bạn không hiểu.

3

Nếu bạn đang sử dụng CoreData để điền UITableView, bạn thực sự muốn sử dụng NSFetchedResultsController thay vì cố gắng tự điền và đồng bộ mảng. Tài liệu cho NSFetchedResultsController bao gồm các liên kết đến một số hướng dẫn CoreData, bao gồm cả các lực lượng điền vào các khung nhìn bảng.

1

NSFetchedResultsController vẫn còn lỗi một chút và yêu cầu cách giải quyết mong manh. Tôi sẽ bắt đầu với hướng dẫn "Vị trí" về Dữ liệu lõi iPhone đơn giản hơn trước khi chuyển sang hướng dẫn Sách.

+0

Bạn có thể cụ thể hơn không? Tôi nhớ một số lỗi có một số hậu quả khá khó chịu trong 3.0, nhưng tôi khá chắc chắn NSFetchedResultsController là hợp lý ổn định và có thể sử dụng trong 3.1. Vẫn còn những vấn đề nổi bật mà tôi không biết? – Tim

+0

Khi di chuyển các hàng, bộ điều khiển tìm nạp tham chiếu các chỉ số trung gian của mảng nội bộ của nó. Nếu các chỉ mục đã nói không còn tồn tại, việc tải lại các phần tiếp theo sẽ gây ra sự cố ngay lập tức. –

1

Ngoài ra, bất kỳ phương pháp tốt hơn để làm những gì tôi đang cố gắng để hoàn thành cũng sẽ được đánh giá cao

có, nó có vẻ như Core Dữ liệu có thể là quá mức cần thiết cho ứng dụng của bạn. Giả sử các mục nguồn cấp dữ liệu của bạn được lưu trữ trong một đối tượng bộ sưu tập, bạn có thể dễ dàng sử dụng built in serializaition của OSX.

0

Được ghi chú trong các bài đăng ngăn xếp chồng khác, nhưng tôi rất có thể đề xuất sách Prag Prog "Dữ liệu cốt lõi: API của Apple cho dữ liệu bền vững trên Mac OS X" - hầu hết cũng liên quan đến ứng dụng Dữ liệu lõi iPhone; có cả một chương về việc tạo ra một ứng dụng iPhone.

http://pragprog.com/titles/mzcd/core-data