2015-09-20 17 views
12

tôi đã cố gắng gửi nó bằng phương pháp fileTransfer:Cách sử dụng coredata từ iPhone trên AppleWatch OS2?

let modelURL = NSBundle.mainBundle().URLForResource("my_app", withExtension: "momd")! 

WCSession.defaultSession().transferFile(modelURL, metadata:nil) 

nhưng tôi nhận được lỗi:

Optional(Error Domain=WCErrorDomain Code=7008 "Invalid parameter passed to WatchConnectivity API." UserInfo={NSLocalizedDescription=Invalid parameter passed to WatchConnectivity API., NSLocalizedRecoverySuggestion=Only pass parameters of correct type.})

Bạn có bất cứ ý tưởng làm thế nào để đồng bộ hóa CoreData giữa iPhone và WatchOS2?

+0

Giá trị của modelURL trong trường hợp này là gì? – ccjensen

+0

tệp: ///var/mobile/Containers/Bundle/Application/0E848152-553B-48C3-A8A4-DB7FE15D4BD5/my_app.momd/ –

+0

hãy xem http://stackoverflow.com/questions/30834078/using-core- data-with-watchos-2-0 –

Trả lời

0

Đây có lẽ là những gì bạn đang tìm kiếm: Watch Connectivity Framework

More đây: https://developer.apple.com/library/prerelease/ios/documentation/WatchConnectivity/Reference/WatchConnectivity_framework/index.html

Và ở đây: https://forums.developer.apple.com/thread/3927

Trích dẫn từ forums.developer.apple.com

Watch apps that shared data with their iOS apps using a shared group container must be redesigned to handle data differently. In watchOS 2, each process must manage its own copy of any shared data in the local container directory. For data that is actually shared and updated by both apps, this requires using the Watch Connectivity framework to move that data between them.

+0

Giống như bạn có thể thấy trong mã của tôi, tôi sử dụng Khung Kết nối Đồng hồ. Câu hỏi của tôi là khác nhau cách sử dụng khung này để chuyển dữ liệu lõi tới AppleWatch –

+0

Chỉ để xác minh, bạn đang thực hiện điều đó từ phía điện thoại hoặc mặt đồng hồ? –

+0

Tôi muốn chuyển tệp từ điện thoại sang xem –

5

Bạn đang cố gắng gửi toàn bộ thư mục “momd”. API tập tin chuyển nhượng WatchConnectivity dường như không hỗ trợ chuyển thư mục, và do đó được trả lại một lỗi trong -session: didFinishFileTransfer: lỗi:

Để giải quyết vấn đề này, bạn có một vài lựa chọn:

  1. Serialize thư mục momd vào một tập tin duy nhất và sau đó deserialize ở phía bên nhận (sử dụng một cái gì đó như zip, vv)
  2. Tạo một định dạng chuyển để chuyển các mẩu thông tin cụ thể từ cơ sở dữ liệu.
    • Dự án sẽ kéo một phần cụ thể ra khỏi cơ sở dữ liệu và gửi nó qua. Bên nhận sẽ thêm phần nội dung đó vào cơ sở dữ liệu của chính nó. Có thể bạn sẽ sử dụng API transferUserInfo với giải pháp này.

Giải pháp số 2 có lẽ là tốt nhất vì nó cho phép bạn gửi chỉ những thay đổi đã được thực hiện thay vì toàn bộ cơ sở dữ liệu mỗi lần thay đổi được thực hiện, nhưng sẽ làm việc nhiều hơn.

Các vấn đề liên quan