1

私は完全に困惑しています。このコード:

 NSFileManager *fileManager=[NSFileManager defaultManager];
    NSURL *documentURL=[fileManager URLForDirectory:NSDocumentDirectory inDomain:NSUserDomainMask appropriateForURL:nil create:YES error:nil];
    documentURL = [documentURL URLByAppendingPathComponent:@"TrackerDB"];
    self.document = [UIManagedDocument alloc];
    self.document = [self.document initWithFileURL:documentURL];

次のエラーが生成されます: * キャッチされていない例外 'NSInvalidArgumentException' が原因でアプリを終了しています。理由: '* -[__NSArrayM insertObject:atIndex:]: オブジェクトを nil にすることはできません'

(alloc と init を 2 行に分けて、どこに影響があるかを確認しました。「step into」を押すとすぐに爆撃するのは initWithFileURL です。)

ちなみに、self.document は a@property (strong,nonatomic) UIManagedDocument *で、URL は次のとおりです。

@"file://localhost/Users/rick/Library/Application%20Support/iPhone%20Simulator/6.1/Applications/3FEA801E-9279-45A7-9606-853124A111C4/Documents/TrackerDB"

これはまさに予想通りです。だから、私が言ったように、私は困惑しています。明らかな何かが欠けていますか?

4

1 に答える 1

0

あなたが得ているエラーは nil ポインタを NSMutableArray メソッドに渡すことに関連しており、ここでは配列を扱っていないので、コードに問題がある可能性は低いと思います. 私も一読しましたが、問題点は見つかりませんでした。この問題はシミュレーターにある可能性が最も高く、時々問題が発生する可能性があります。設定をリセットして新しいビルドを作成することをお勧めします。この問題はこちらで適切に処理されており、Core Data を操作する際のこの同じ問題に直接関連しています。

于 2013-08-09T04:31:36.833 に答える