2014-02-06 2 views
0

У меня есть 3 текстовые поля, имя, возраст, номер телефона Каждый раз, когда я ввод значения на каждом поле будет храниться на основных данныхUpdate CoreData Атрибуты без дублирования

Также я хочу, чтобы проверить любое повторение в моей БД, что

  • Сначала я хочу, чтобы проверить, есть ли повторение во имя
  • Если любое повторение, а затем проверить возраст и номер телефона.
  • Если возраст такой же, он не может быть изменен.
  • Если разница в номере телефона, второе число заменит первый номер телефона.

Я пробовал много .. Просьбы помочь мне

Моего код

NSEntityDescription *entityDescc=[NSEntityDescription entityForName:@"Name" inManagedObjectContext:self.managedObjectContext]; 
NSFetchRequest *request=[[NSFetchRequest alloc]init]; 
[request setEntity:entityDescc]; 
NSPredicate *predicate=[NSPredicate predicateWithFormat:@"sname like %@ ",self.nameTextField.text]; 
[request setPredicate:predicate]; 
NSError *error; 
NSArray *matchingData=[self.managedObjectContext executeFetchRequest:request error:&error]; 

if (matchingData.count<=0) { 
    NSEntityDescription *entityDesc=[NSEntityDescription entityForName:@"Name" inManagedObjectContext:self.managedObjectContext]; 
    NSManagedObject *newObject=[[NSManagedObject alloc]initWithEntity:entityDesc insertIntoManagedObjectContext:self.managedObjectContext]; 
    [newObject setValue:self.nameTextField.text forKey:@"sname"]; 
    [newObject setValue:self.ageTextField.text forKey:@"age"]; 
    NSError *error; 
    [self.managedObjectContext save:&error]; 
} 
else{ 
    int count=0; 
    for (record *obj in matchingData) { 
     NSEntityDescription *entityDescc=[NSEntityDescription entityForName:@"Name" inManagedObjectContext:self.managedObjectContext]; 
     NSFetchRequest *request=[[NSFetchRequest alloc]init]; 
     [request setEntity:entityDescc]; 

NSPredicate *predicate=[NSPredicate predicateWithFormat:@"age like %@ ",self.ageTextField.text]; 
[request setPredicate:predicate]; 
[request setPredicate:predicate]; 
NSError *error; 
NSArray *matchingData=[self.managedObjectContext executeFetchRequest:request error:&error]; 




      if (matchingData.count<=0) { 

       NSLog(@"Entered"); 
       NSEntityDescription *entityDesc=[NSEntityDescription entityForName:@"Name" inManagedObjectContext:self.managedObjectContext]; 
       NSManagedObject *newObject=[[NSManagedObject alloc]initWithEntity:entityDesc insertIntoManagedObjectContext:self.managedObjectContext]; 


       [newObject setValue:self.ageTextField.text forKey:@"age"]; 


       NSError *error; 
       [self.managedObjectContext save:&error]; 
      } 
      ++count; 
     } 
    } 

это не проверяет атрибут Возраста

+0

Какое имя атрибута используется для вашего _phone number_? а также имя имени переменной вашего _phone number_ 'textfield'. – GoGreen

ответ

0

Сохранить все три детали в едином целом. Извлеките все записи в данном объекте без какого-либо предиката. Создайте класс модели для каждой записи. Сделайте свою бизнес-логику, используя список классов модели. Это решит вашу проблему и сделает ваше приложение более эффективным.

Смежные вопросы