2012-03-07 18 views
0

私はコアデータフレームワークの管理オブジェクトコンテキストを使用してそのコンテンツをデータベースにロードするメソッドを持つアプリケーションを開発しました。私はデリゲートの終了仕上げメソッドでそのメソッドを呼び出しています。 UITableViewを使用してデータをフェッチし、テーブルビューに表示しています。私の問題は、同じデータがテーブルビューに2回表示されていることです。 Xcodeを使用してアプリケーションを起動すると、データが1回だけ表示され、xcodeを停止した後、アプリケーションで最初にアプリケーションを開くと、同じデータの重複コピーが取得されます。私はこの重複を避ける方法を得ていないので、これで私を助けてください。iosのUITableViewで重複するエントリを避ける

-(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; 
     . 
     . 
     . 
    } 

これが私の方法であり、あなたは新しいオブジェクトにあなたが-insertNewObjectForEntityForName:inManagedObjectContext:を呼び出すたびに挿入されている

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

おかげ

+1

あなたのコードを表示してください! – dasdom

+0

私はデバイスがデバイスで起動されたときにその複製を1度だけ実行してから起動することに問題があると思います – NNR

答えて

0

以下のように私はdidfinish起動方法でそれを呼びました。

あなたがすべきことは、オブジェクトを挿入する前にそれを取得しようとすることです。フェッチが空の場合は新しいオブジェクトを挿入し、そうでない場合は挿入しないでください。

+0

私はこれを試してみます – NNR

関連する問題