私はコアデータを扱っており、1つのアカウントに複数の連絡先(1対多関係)。コアデータ - 新しいオブジェクトを挿入して、同じオブジェクトが存在するかどうかを確認して、返品を処理します
新しいオブジェクトを挿入するとき、新しい連絡先の電話番号が既に既存の連絡先に属しているかどうかを確認したいと思います。番号が存在する場合は、ユーザーに通知する必要があります。
"ContactAddViewController.m"には、contactDataが新しい連絡先(テキストフィールドに入力された)の値とキーを持つNSMutableDictionaryの場合、次のメソッドが呼び出されます。
[ContactInfo findOrCreateContact:contactData inManagedObjectContext:context];
"AccountInfo.m"には、述部を持つ電話機の要求とmy textfieldの値が設定されています。電話番号が存在しない場合は、連絡先は「のContactInfo」エンティティに追加されます - それが存在する場合、メソッドは0
+ (ContactInfo *)findOrCreateContact:(NSDictionary *)data inManagedObjectContext:(NSManagedObjectContext *)context
{
ContactInfo *contactInfo = nil;
NSFetchRequest *request = [[NSFetchRequest alloc] init];
request.entity = [NSEntityDescription entityForName:@"ContactInfo" inManagedObjectContext:context];
request.predicate = [NSPredicate predicateWithFormat:@"phone == %@", [data objectForKey:@"phone"]];
NSError *error = nil;
contactInfo = [[context executeFetchRequest:request error:&error] lastObject];
if (!error && !contactInfo)
{
// if phone number can't be found, create new contact
contactInfo = [NSEntityDescription insertNewObjectForEntityForName:@"ContactInfo" inManagedObjectContext:context];
contactInfo.firstName = [data objectForKey:@"firstName"];
contactInfo.lastName = [data objectForKey:@"lastName"];
contactInfo.phone = [data objectForKey:@"phone"];
contactInfo.updatedDate = [NSDate date];
contactInfo.cinfoTOainfo = [AccountInfo findOrCreateAccount:data inManagedObjectContext:context];
}
// Return object
return contactInfo;
}
__質問
方法を返します。 NSString(またはそのようなsth)に0の戻り値を設定して、次のようなif節を構築できますか?
if (...) // What should I put in here?
{
// if phone number doesn't exist, do that.
}
else
{
// if phone number exist, do that.
}
これは、ありがとう! :) – flashfabrixx