2015-10-14 113 views
0

我在使用iCloud Core Data的測試應用程序中遇到問題。觸摸表格視圖中的部分條目時會觸發特定的問題,觸發全屏幕表格全屏顯示。一種標準的表格視圖的東西。核心數據iCloud提取有時不會產生數據(iOS)

表視圖單元格包含傳遞到詳細顯示視圖的唯一記錄標識。在啓動視圖後,視圖控制器get使用完整的記錄數據並將其繪製在屏幕上。

這裏是用來做什麼的代碼:

- (void)viewDidLoad { 
    [super viewDidLoad]; 

    NSString *temp_text; 
    Item *fetchSelectedItem; 
    NSString *updateUniqueID; 
    NSArray *tempFetchedObjects; 
    NSError *error; 
    int stopper; 

    localFindItDataController = [[FindItDataController alloc] init]; 

    NSFetchRequest *fetch = [[NSFetchRequest alloc] init]; 
    NSEntityDescription *entityDescription = [NSEntityDescription entityForName:@"Item" inManagedObjectContext: localFindItDataController.managedObjectContext]; 
    [fetch setEntity:entityDescription]; 
    updateUniqueID = [localItem.itemUniqueID stringValue]; 
    [fetch setPredicate:[NSPredicate predicateWithFormat:@"(ANY itemUniqueID = %@)",updateUniqueID]]; 

    tempFetchedObjects = [localFindItDataController.managedObjectContext executeFetchRequest:fetch error:&error]; 
    NSLog(@"did the fetch work %@ %lu", updateUniqueID, (unsigned long)[tempFetchedObjects count]); 
    if ([tempFetchedObjects count] == 0) { 
     stopper = 1;} 

    fetchSelectedItem = [tempFetchedObjects objectAtIndex:0]; 
    NSLog(@"only executes if fetch was ok"); 
    localItem = fetchSelectedItem; 

    temp_text = localItem.itemName; 
    contentsWhatBox.text = temp_text; 
    temp_text = localItem.itemLocation; 
    contentsWhereBox.text = temp_text; 
    temp_text = localItem.itemDescription; 
    contentsOtherInfoBox.text = temp_text; 

    UIImage *tempImage = [UIImage imageWithData:localItem.itemPicture]; 
    CGImageRef imageRef = [self CGImageRotatedByAngle:[tempImage CGImage] angle:270]; 
    UIImage* img = [UIImage imageWithCGImage: imageRef]; 
    contentsImageBox.image = img; 

    tapImage = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(tapImageGesture)]; 

    [contentsImageBox setUserInteractionEnabled:YES]; 

    [contentsImageBox addGestureRecognizer:tapImage]; 

} 

晴這工作得很好,但偶爾抓取出現空,即使存在肯定的是,取謂詞相匹配的數據。有時我可以點擊表格視圖條目,看到它出現,在表格視圖條目之間來回幾次,返回到原始條目,並且提取失敗。

我有些茫然,任何幫助都會受到歡迎。提前致謝。

編輯#1:

這是正在提取的對象。也許無關緊要,所以我說這在以後:

@interface Item : NSManagedObject { 
} 

@property (nonatomic, retain) NSString * itemName; 
@property (nonatomic, retain) NSString * itemLocation; 
@property (nonatomic, retain) NSString * itemDescription; 
@property (nonatomic, retain) NSData * itemPicture; 
@property (nonatomic, retain) NSNumber * itemUniqueID; 
@property (nonatomic, retain) NSNumber * itemNumber1; 
@property (nonatomic, retain) NSNumber * itemNumber2; 
@property (nonatomic, retain) NSString * itemAttribute1; 
@property (nonatomic, retain) NSString * itemAttribute2; 
@property (nonatomic, retain) NSString * itemAttribute3; 
@property (nonatomic, retain) NSString * itemTimestamp; 


@end 

編輯#2:

我忘了提,從獲取錯誤對象是後「壞」取零。

編輯#3:

增加了一個循環來檢查,如果我得到一個結果,然後重試一定次數,在退出前和工作確定。我不確定它爲什麼會發生,但我懷疑iCloud數據中的圖像可能是問題的一部分,即使此時的數據肯定會被複制到iOS測試設備。

回答

0

增加了一個循環來檢查我是否得到了一個結果,並在退出之前重試了一定次數並且工作正常。我不確定它爲什麼會發生,但我懷疑iCloud數據中的圖像可能是問題的一部分,即使此時的數據肯定會被複制到iOS測試設備。