Избегайте повторяющихся записей в UITableView в IOS - PullRequest
0 голосов
/ 07 марта 2012

Я разработал приложение, в котором у меня есть метод, который использует контекст управляемого объекта базовой структуры данных для загрузки его содержимого в базу данных. Я вызываю этот метод в завершающем запуске метода делегата. и я использую UITableView для извлечения данных и отображения их в табличном представлении. Моя проблема в том, что одни и те же данные отображаются дважды в табличном представлении. Когда я запускаю приложение с помощью XCode, данные отображаются только один раз, а затем после остановки XCode, и когда я впервые открываю приложение на устройстве, я получаю дубликат копии тех же данных. Я не понимаю, как избежать этого дублирования, пожалуйста, помогите мне с этим.

    -(void) devicedetails
     { 
         devicename = [UIDevice currentDevice].name;
       osversion = [UIDevice currentDevice].systemVersion;
       //some other data like this
       NSManagedObjectContext context = [self managedObjectContext];
      Deviceinfo *detail = [NSEntityDescription insertNewObjectForEntityForName:@"Deviceinfo" inManagedObjectContext:nscontext];
      detail.platform = devicename;
      detail.os_version = devosversion;
       .
       .
       .
    }

Это мой метод, и я назвал его в методе didfinish, как показано ниже

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
  { 
    [self devicedetails];
    return YES;
  }

Спасибо

1 Ответ

0 голосов
/ 07 марта 2012

Вы вставляете новый объект каждый раз, когда вызываете -insertNewObjectForEntityForName:inManagedObjectContext:.

Что вам нужно сделать, это попытаться получить объект перед его вставкой.Если выборка пуста, вставьте новый объект, иначе не вставляйте его.

...