0

ユーザーが重複したレコードを挿入した場合、アラートでユーザーを停止する必要があります。

列 1 列 2 列 3

(ABC) 可

(BAL) 可

(ABC) レコードが重複しているため許可されません
AppDelegate *appDelegate = [[UIApplication sharedApplication] delegate];
    NSManagedObjectContext *context = [appDelegate managedObjectContext];
    NSManagedObject *newAdds;
    newAdds = [NSEntityDescription insertNewObjectForEntityForName:@"Matches" inManagedObjectContext:context];


    [newAdds setValue:club01.text forKey:@"club01"];
    [newAdds setValue:club02.text forKey:@"club02"];
    [newAdds setValue:matchDateVar forKey:@"matchDate"];


    [newAdds setValue:matchTaypVar forKey:@"matchType"]; 
4

2 に答える 2

6

おそらく次のようなチェックを実装する必要があります。

NSFetchRequest* fetchRequest = [NSFetchRequest fetchRequestWithEntityName: @"Matches"];
fetchRequest.predicate = [NSPredicate predicateWithFormat: @"club01 == %@ AND club02 == %@ AND matchDate == %@", club01.text, club02.text, matchDateVar];
fetchRequest.fetchLimit = 1;

NSError* error = nil;
NSArray* tuples = [context executeFetchRequest: fetchRequest error: &error];
if ( tuples.count > 0 )
{
  // OOPS ! Entity already exists
}

パフォーマンスに関しては、club01、club02、matchDate のインデックスを追加することをお勧めします。それは大いに役立ちます。

編集:次も使用できます:

NSUInteger count = [context countForFetchRequest: fetchRequest error: &error];

executeFetchRequest の代わりに。さらに良い。

于 2012-06-14T19:01:50.520 に答える
-1

今は大丈夫です。問題は、秒のために日付/時刻を複製できなかったことです。

ありがとう:)

于 2012-06-14T21:03:38.333 に答える