0

アプリケーションで Core Data を使用しようとしています。属性「totalKM」を保存したい。

属性を保存するには、次の行を使用します。

Model *event = (Model *)[NSEntityDescription insertNewObjectForEntityForName:@"Model" inManagedObjectContext:managedObjectContext];
int number = 4;
[event setTotalKM:[NSNumber numberWithDouble:number]];

私の属性を読むために、私はこれらを使用します:

Model *event = (Model *)[NSEntityDescription insertNewObjectForEntityForName:@"Model" inManagedObjectContext:managedObjectContext];
NSNumber *number = [event totalKM];

私の属性 "totalKM" は常にデフォルト値の O です。例外はありません。何か不足していますか?

ありがとう。

4

1 に答える 1

2

insertNewObjectForEntityForNameこのメソッドは、モデルをコンテキストに配置するために使用します。

これは新しいオブジェクトです。

正しい方法は次のとおりです。

新しいものを設定する

Model *event = (Model *)[NSEntityDescription insertNewObjectForEntityForName:@"Model" inManagedObjectContext:managedObjectContext];

int number = 4;

[event setTotalKM:[NSNumber numberWithDouble:number]];

//save change if need
NSError *error = nil;

if (![self.manageObjectContext save:&error]) {
    NIDERROR(@"save managedContext error :%@",error);
}

オブジェクトの進行状況を取得します

モデルフォームcoredate.uを取得する必要がある場合は、2つのフェッチを使用してフェッチを使用する必要があります

このドームのように

NSFetchRequest *fetchRequest = [[NSFetchRequest alloc]init];
[fetchRequest setEntity:[NSEntityDescription entityForName:@"Board"
                                    inManagedObjectContext:self.manageObjectContext]];
//set fetch conditions
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"board_id == %@", aBoardID];
[fetchRequest setPredicate:predicate];

NSError *error = nil;

NSArray *results = [self.manageObjectContext executeFetchRequest:fetchRequest error:&error];

if (error) {
    NIDERROR(@"fetch board error.\n board id: %@ \n error:%@", aBoardID, error);
    return nil;
}

Model *model = results[0];

NSLog(@"%@",model.totalKM)
于 2012-10-20T20:35:24.660 に答える