2

そのため、Core Data を UIManagedDocument に移行していました。

iPhone シミュレーターで openWithCompletionHandler を呼び出すと正常に動作しますが、実際のデバイスでプロジェクトを実行しようとすると、常に NO が返されます。handleError をオーバーライドすると、次のようになります。

    Error Domain=NSCocoaErrorDomain Code=260 
"The operation couldn’t be completed. (Cocoa error 260.)" 
UserInfo=0x1edafa90 {path=file://localhost/var/mobile/Applications/D57D7EAC-6E92-4CAD-97E7-179010CB6738/Project%20APP.app/DataModel.momd/StoreContent.nosync, NSUnderlyingError=0x1ed8e160 
"The operation couldn’t be completed. (Cocoa error 513.)", reason=Unable to restore path to store content}

そして、それが私がそれを呼ぶ方法です:

NSDictionary *options = [NSDictionary dictionaryWithObjectsAndKeys:
                          PrivateName, NSPersistentStoreUbiquitousContentNameKey,
                         //   cloudURL, NSPersistentStoreUbiquitousContentURLKey,
                         [NSNumber numberWithBool:YES],
                         NSMigratePersistentStoresAutomaticallyOption,
                         [NSNumber numberWithBool:YES],
                         NSInferMappingModelAutomaticallyOption,
                         nil];
[self setPersistentStoreOptions:options];


[self openWithCompletionHandler:^(BOOL success) {
    if (success)
    NSLog(@"opened");
    else {
        NSLog(@"Not opened");
    }
}];
4

1 に答える 1

0

iCloud でドキュメントを開こうとしている場合は、両方が必要で、persistentStoreOptions に設定する必要がありNSPersistentStoreUbiquitousContentNameKeyますNSPersistentStoreUbiquitousContentURLKey。現在、NSPersistentStoreUbiquitousContentURLKey をコメントアウトしています。

デバイスにローカルなドキュメントを開こうとしている場合は、これらのキーをオプションで設定する必要はありません。

あなたの場合、これはシミュレーターでは機能しますが、デバイスでは機能しないと思います。これは、シミュレーターが現在 iCloud でドキュメントを開くことができないためです。一方、デバイスは iCloud でドキュメントを開くことができますが、それを適切に行うのに十分な情報を提供していないため、退屈です。

于 2013-03-19T00:10:11.677 に答える