我在使用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測試設備。