2014-04-17 101 views
0

當我從核心數據中搜索保存的數據時,它在提取舊數據時會給我保存的數據。需要幫助來查找我的錯誤無法從核心數據中提取保存的數據

- (void)retrieveDataFromCoreData 
{ 
    NSManagedObjectContext *context = [self managedObjectContext]; 

    NSEntityDescription *entityDesc = [NSEntityDescription entityForName:@"VitaminData" inManagedObjectContext:context]; 

    NSFetchRequest *request = [[NSFetchRequest alloc] init]; 
    [request setEntity:entityDesc]; 

    NSError *error = nil; 
    NSArray *objects = [context executeFetchRequest:request 
    error:&error]; 

    NSString *matchFound = nil; 
    matches = [[NSMutableArray alloc]init]; 
    if ([objects count] == 0) { 
    //matchFound = @"No matches"; 
    } else { 
    matches = objects[0]; 
    matchFound = [matches valueForKey:@"userdetails"]; 
    } 

NSLog("retrieved data : %@",matchFound); 
} 
+0

檢查數組中的其他對象,而不僅僅是第一個。 – wootage

+0

你不是在這裏搜索。每次只提取第一個對象。要搜索,請將'NSPredicate'設置爲'NSFetchRequest'指定條件。 – Akhilrajtr

+0

謝謝你的回覆球員 – suneel

回答

0

您的提取請求沒有謂詞。這將導致它獲取數據存儲中的所有VitaminData實體。

給它一個謂詞,並且(可能)還有一些排序描述符。然後遍歷結果。請注意,您還應該在-executeFetchRequest:之後檢查objects不是nil。如果objectsnil,那麼在您的獲取請求中存在錯誤,您應該查看error的內容。

+0

謝謝你的回覆Hal – suneel