ジェームズ、
サンプル コードを使用して、両方の質問にお答えします。
NSFetchRequest
特定のオブジェクトを更新するには、述語でnew をセットアップする必要があり、 (タイプのNSManagedObject
) オブジェクトを取得し、関心のある値を更新して、コンテキストを保存します。
たとえば、次のようになります。
NSFetchRequest* fetchRequest = [NSFetchRequest fetchRequestWithEntityName:@"YourEntityName"];
// set the predicate (it's equal to set a WHERE SQL clause) filtering on the name for example
// use camel case notation if possible, so instead of Name use name (for this you have to changes your model, if you don't want to do it use Name)
[fetchRequest setPredicate:[NSPredicate predicateWithFormat:@"name == %@", @"Joseph"]];
NSError* error = nil;
NSArray* results = [context executeFetchRequest:fetchRequest error:&error];
// do some error checking here...
for (NSManagedObject resultItem in results) {
// use KVC (for example) to access your object properties
[resultItem setValue:@"myName" forKey:@"name"];
}
// save your context here
// if you don't save, changes are not stored
印刷するには、新しい をセットアップし、 (タイプの)NSFetchRequest
オブジェクトを取得してを使用する必要があります。NSManagedObject
NSLog
たとえば、次のようになります。
NSFetchRequest* fetchRequest = [NSFetchRequest fetchRequestWithEntityName:@"YourEntityName"];
NSError* error = nil;
NSArray* results = [context executeFetchRequest:fetchRequest error:&error];
// do some error checking here...
for (NSManagedObject resultItem in results) {
NSLog(@"%@", [resultItem valueForKey:@"name"]);
}
PS私が提供したコードは非常に単純で、特定の値をチェックするために使用した述語name
. これはエラーが発生しやすいため、モデルを変更し、使用する必要があるオブジェクトごとに一種のGUIDを使用します (id がそのためのものかどうかはわかりませんが、名前を別のものに変更しますuserId
)。完了したら、それに対してチェックできます。
それが役立つことを願っています。