4

この問題で正気を失い始めているように感じます。

SDK が提供する生成された CoreData コードを使用して、CoreData iOS アプリの作業を開始しました。私の問題は、エンティティの新しいインスタンスをインスタンス化して保存しようとするたびに発生します。

Apple CoreData チュートリアルに従って、AppDelegate 内にあるインスタンス化コードを次に示します (この問題をデバッグするために、コードの束をそこに移動しました)。

NSManagedObjectContext* context = [self managedObjectContext];
if (!context)
{
    NSLog(@"Error"); // I'm not too concerned about my error handling just yet
}

その直後、私が経験しているエラーを生成する行は次のとおりです。

Vehicle* vehicle = (Vehicle*)[NSEntityDescription insertNewObjectForEntityForName:@"Vehicle" inManagedObjectContext:context];

問題のエラーは次のとおりです。

Thread 1: EXC_BAD_ACCESS (code=EXC_ARM_DA_ALIGN address=0xdeadbeef)

全体として、メモリ アラインメントの問題 (ARMv7 で一般的ですか?) があることと、Google で見つけたリソースが少しも役に立たなかったことを除けば、それが何を意味するのか本当にわかりません。

関連する他の唯一のコードは、Xcode がプロジェクトを生成するときに提供する「managedObjectContext」メソッドです。

- (NSManagedObjectContext *)managedObjectContext
{
    if (__managedObjectContext != nil) {
        return __managedObjectContext;
    }

    NSPersistentStoreCoordinator *coordinator = [self persistentStoreCoordinator];
    if (coordinator != nil) {
        __managedObjectContext = [[NSManagedObjectContext alloc] init];
        [__managedObjectContext setPersistentStoreCoordinator:coordinator];
    }

    return __managedObjectContext;
}

私が言ったように、私はここで私の深さから抜け出しています。どうすればこれを解決できるかについて、誰かが少し明確にすることはできますか?

4

2 に答える 2