コアデータを使用して詳細を保存しています。しかし、アプリを2回実行すると、エンティティのコンテンツが2倍になります。これは、アプリを実行するたびに続きます。この質問のように追加する前にオブジェクトを削除しようとしましたコアデータ:エンティティのすべてのインスタンスを削除する最も簡単な方法ですが、削除は追加部分ではなく正常に機能するため、コード内で終了します(他の部分からデータベースにアクセスしています)
以下のコードを使用しました
-(void)synDBFavSpecies:(NSString *)speciesName:(NSString *)speciesId:(NSString *)Imagename
{
NSManagedObjectContext *context=app.managedObjectContext;
NSError *err;
NSFetchRequest *request1=[[NSFetchRequest alloc]init];
NSEntityDescription *entity1=[NSEntityDescription entityForName:@"FavoriteSpecies" inManagedObjectContext:context];
[request1 setEntity:entity1];
NSArray *result1=[context executeFetchRequest:request1 error:&err];
NSManagedObject *ph1;
for(ph1 in result1 )
{
[context deleteObject:ph1];
NSString *sid= [ph1 valueForKey:@"ID"];
NSLog(@"Sp.ID:%@",sid);
if(sid)
{
[context deleteObject:ph1];
if(![context save:&err])
{
NSLog(@"error");
}
}
}
NSManagedObject *SetDB=[NSEntityDescription insertNewObjectForEntityForName:@"FavoriteSpecies" inManagedObjectContext:context];
[SetDB setValue:speciesName forKey:@"favspecies"];
[SetDB setValue:speciesId forKey:@"ID"];
[SetDB setValue:Imagename forKey:@"speciesimage"];
if(![context save:&err])
{
NSLog(@"error");
}
}
誰か助けてもらえますか?