2013-08-17 41 views
5

Tôi muốn có thể xem nội dung của Core Data được chứa trong ứng dụng giả lập iPhone của tôi từ dòng lệnh.Xem nội dung của Dữ liệu cốt lõi

Tôi đã thử "cd'ing" vào ~/Library/Application Support/iPhone Simulator/7.0/Applications và sau đó sử dụng find . -name MyAppName để tìm mà các thư mục chứa ứng dụng của tôi:

29EB3FF9-4691-474D-8B05-AB168899D528 4C25697B-04D9-4B48-BE5E-D1E9B2E03381 A1DF7916-AE39-4367-BFD2-22A8BAA2AFD2 BDB577A8-0BCF-4E58-896B-D4E704F261D0 CC3CC638-E39D-4AE7-8580-4E8BBD375DC4 D11D7C57-5578-4531-85BB-71AE6DD68B2F 

Sau đó, tôi tìm đến "Tài liệu" thư mục bên trong thư mục này, nhưng các tệp "sqlite" duy nhất tôi thấy là CoreDataTabBarTutorial.sqlite CoreDataTabBarTutorial.sqlite-shm CoreDataTabBarTutorial.sqlite-wal. (EDIT: Tôi đã thực sự đặt tên cho số URL của mình là CoreDataTabBarTutorial.sqlite) của persistentStoreCoordinator.

Tôi chắc chắn rằng các đối tượng của tôi được chèn vào "Dữ liệu cốt lõi", nhưng có vẻ như chúng không tồn tại giữa các lần khởi chạy Trình tạo giao diện. Tôi đang cố gắng gỡ lỗi đó.

+0

Vì vậy, ý nghĩa của bạn * là bạn muốn xem nội dung của kho lưu trữ CoreData của SQLLite?Tôi cũng rất bối rối về * 'nhưng có vẻ như chúng không tồn tại giữa các lần khởi chạy Interface Builder' * điều này thực sự có ý nghĩa gì không? – marko

+0

Khi bạn tạo cửa hàng liên tục, hãy kiểm tra loại và tên bạn đang sử dụng để khởi tạo nó. –

+0

Cảm ơn, tôi đã thiết lập 'URL' persistentStoreCoordinator' thành 'CoreDataTabBarTutorial.sqlite'. –

Trả lời

5

Dữ liệu chính được lưu trên thiết bị với sqlite.

Bạn có thể sử dụng sqlite3 CoreDataTabBarTutorial.sqlite để xem cơ sở dữ liệu của bạn từ dòng lệnh. Bạn sẽ cần phải sử dụng các lệnh sqlite3 khác nhau và SQL để xem bất kỳ giá trị nào. See Docs

.table will list the tables 
select * from ZYOURTABLENAME; (do not forget semi-colon) will display the rows. 

Có một Mac app called Base đó là một công cụ GUI để xem cơ sở dữ liệu SQLite.

-4

Hãy thử hiển thị các tệp ẩn: defaults write com.apple.Finder AppleShowAllFiles 1 && killall Finder Và tìm lại tệp.

2

Cách dễ nhất tôi biết là với CoreDataUtility.

Chỉ cần làm theo các bước sau:

  1. Tải mới nhất nhị phân https://github.com/yepher/CoreDataUtility/wiki
  2. Giải nén và ứng dụng chạy
  3. Chọn Menu-> File-> New Project
  4. Chọn "iOS Simulator" tab
  5. Chọn nút "Trình mô phỏng ứng dụng"
  6. Chọn ứng dụng của bạn trong danh sách thả xuống và chọn OK
  7. nút
  8. Chọn "File" và điều hướng lên hai thư mục
  9. Chọn Documents and find "kiên trì" tập tin của bạn (nó sẽ được đặt tên CoreDataTabBarTutorial.sqlite hoặc bất cứ điều gì bạn khởi tạo trong mã của bạn)
  10. Hãy chắc chắn rằng "SQL" được chọn
  11. Nhấp vào "Mở"
  12. Nhấp vào Tệp-> Lưu dự án để bạn có thể chỉ cần nhấp đúp vào tệp dự án vào lần tiếp theo.
0

Tôi biết đây là câu hỏi cũ nhưng gần đây tôi đã viết một thư viện đơn giản nhỏ cho phép bạn xem nội dung của Kho dữ liệu cốt lõi trong khi gỡ lỗi ứng dụng của bạn.Nó mang đến cho bạn một popup xem tùy chỉnh bên trong ứng dụng của bạn đang làm việc trên thay vì phải tải về một trình xem SQL Check it out here

Thêm vào Podfile

pod 'RWCoreDataViewer', :git => 'https://github.com/richmondwatkins/RWCoreDataViewer' 

của bạn Làm cho đối tượng quản lý của bạn là một thành viên của Nghị định thư RWCoreDataInspector. (Không có gì để thực hiện ở đây là chỉ bao gồm nó trong khai báo lớp của bạn)

import Foundation 
import CoreData 
import RWCoreDataViewer 

class MyEntity: NSManagedObject, RWCoreDataInspector { 

} 

Để hiển thị dữ liệu của bạn chỉ cần dán trong:

RWCoreDataViewer.initialize(self.managedObjectContext) 

Và thats nó. Bất cứ khi nào bạn muốn hiển thị dữ liệu của bạn chỉ cần thêm initializer và bạn sẽ nhận được một cái nhìn tùy chỉnh với tất cả các đối tượng và hồ sơ của họ

4

Để biết con đường của tập tin SQLite của bạn, hãy làm theo các các bước sau

1) Mở AppDelegate của dự án của bạn.

2) Có phải tồn tại một var với tuyên bố như (chỉ khi bạn đã kiểm tra Sử dụng CoreData khi tạo dự án của bạn):

lười biếng var persistentStoreCoordinator: NSPersistentStoreCoordinator = {

3) Tìm dòng này tương tự như

let url = self.applicationDocumentsDirectory.URLByAppendingPathComponent ("SingleViewCoreD ata.sqlite ")

4) in url này như

print (" persistentStoreCoordinator url: (url) ")

5) Chạy ứng dụng của bạn tìm thấy url này trong giao diện điều khiển 6) sao chép rằng url, thiết bị đầu cuối mở, gõ cd sau đó dán url url này giống như

(file: /// Users/p rnjls/Library/Developer/CoreSimulator/Thiết bị/A2B99983-4B71-4708-A515-7A87463ECF0C/data/Container/Dữ liệu/Ứng dụng/F70EF393-FBF7-4598-B28B-9DAACBFE46F8/Documents/SingleViewCoreData.sqlite)

7) Tải xuống và cài đặt ứng dụng miễn phí để xem dữ liệu sqlite here

8) Mở Trên Liya Nhấp vào Tệp -> Mới -> chọn sqlite trong Loại cơ sở dữ liệu -> nhấp vào biểu tượng gần đó -> điều hướng đến tệp sqlite đó sử dụng đường dẫn bạn đã sao chép.

9) Bạn có thể tìm thấy tất cả các thực thể bạn đã lưu nhấn vào bất kỳ tên thực thể nào và nhấp vào Chạy lệnh SQL. Vậy đó. Hy vọng nó sẽ giúp ai đó.