2011-02-08 6 views
0

CoreDataアプリケーションで問題が発生しました...ストレージ用にコアデータを使用するように選択すると、appleによって提供されるボイラープレートコードでクラッシュします。CoreData PathForResourceでアプリケーションがクラッシュする

ここに任意のアイデア....

- 'nilの文字列パラメータ[NSURL initFileURLWithPath::] *:'

- (NSManagedObjectModel *)managedObjectModel { 

if (managedObjectModel_ != nil) { 
    return managedObjectModel_; 
} 
NSString *modelPath = [[NSBundle mainBundle] pathForResource:@"iLoveForLife" ofType:@"momd"]; 
NSURL *modelURL = [NSURL fileURLWithPath:modelPath]; 
managedObjectModel_ = [[NSManagedObjectModel alloc] initWithContentsOfURL:modelURL];  
return managedObjectModel_; 
} 

それは、*がキャッチされない例外により 'NSInvalidArgumentException'、理由にアプリを終了語ります

答えて

0

何とかxcodedatamodeldファイルが失われました。私が新しいものを作成したとき、それはxcodedatamodelと呼ばれていました。

+0

同じことが起こっていますが、私は "momd"をxcdatamodelと同じように参照しています。これはうまくいくはずですか? – quantumpotato

+0

私がやったのは、ファイルをxcodedatamodelからxcodedatamodeldにリネームしていただけです。理由は分かりません。 – logixologist

-1

同じ問題がありました。 modelURLがnilであるかどうかを確認するためのテストを追加して取り組んでいます。すべてのデータモデルがiOS5 SDKで「バージョン管理」されているということが関係しています。

私は今、次の操作を行います。

NSString *modelPath = [[NSBundle mainBundle] pathForResource:@"iLoveForLife" 
                 ofType:@"momd"]; 
NSURL *modelURL = [NSURL fileURLWithPath:modelPath]; 
if (modelURL == nil) 
     NSString *modelPath = [[NSBundle mainBundle] pathForResource:@"iLoveForLife" 
                   ofType:@"mom"]; 
managedObjectModel_ = [[NSManagedObjectModel alloc] initWithContentsOfURL:modelURL]; 

注お母さんにMOMDから変える "ofType" パラメータを。私はこれが理想的ではないことを知っていますが、それはあなたを元気づけるでしょう。

managedObjectModel_ = [NSManagedObjectModel mergedModelFromBundles:nil] 

それはすべてを検索します:できるだけ早くなぜこれが起こっている私は、私はあなたがあなたの管理オブジェクトモデルを取得するには、以下を使用する必要があります

0

:-)何かを投稿します、考え出したとして メインアプリケーションバンドルで使用可能な管理対象オブジェクトモデル

+0

まだ私のためにクラッシュします。 – SpaceDog