擷取結果這似乎是這樣一個簡單的事情,但我不能把它在一起。我有一個iOS應用程序使用RestKit 0.20來填充我的CoreData屬性。我的主視圖控制器是一個集合視圖,它在啓動時通過向服務器發出請求來填充。如何從CoreData實體
當用戶選擇一個單元格時,我可以將包含在該單元格中的數據傳輸到詳細視圖(圖像和標題)。但是我還需要向服務器發出另一個請求,以獲取所有要在detail viewController中顯示的信息。實體名稱Gist
和屬性是fullArticle
這裏是SEGUE到detailViewController
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
if ([[segue identifier] isEqualToString:@"newsDetail"]) {
NSIndexPath *indexPath = [[self.collectionView indexPathsForSelectedItems] lastObject];
NSManagedObject *object = [[self fetchedResultsController] objectAtIndexPath:indexPath];
[[segue destinationViewController] setmanagedObjectContext:managedObjectContext];
[[segue destinationViewController] setDetailItem:object];
}
}
以下是我在-(void)viewDidLoad
{
[super viewDidLoad];
NSString *articleID =[self.detailItem valueForKey:@"articleId"];
NSString *personID = [self.detailItem valueForKey:@"userID"];
NSString *getArticle =[NSString stringWithFormat:@"/rest/article/getArticleForView?aid=%@&pid=%@&ip=255.255.255.0",articleID,personID];
[[RKObjectManager sharedManager] getObjectsAtPath:getArticle parameters:nil success:nil failure:nil];
NSURL *photoURL =[NSURL URLWithString:[self.detailItem valueForKey:@"imageUrl"]];
NSData *photoData = [NSData dataWithContentsOfURL:photoURL];
self.newsDetailImageView.image =[UIImage imageWithData:photoData];
//This is where I am stuck, How do you fetch the Attribute "fullArticle" from the request that I just made?
self.newsDetailText.text = //valueForKey:"fullArticle" from article with ID `articleID`
}
我曾嘗試使用下面的代碼嘗試使用,但該fetchedResultsController
是設置爲與tableView
使用,所以沒有辦法,我知道的,指定沒有indexPath
NSManagedObject *detailText = [self.fetchedResultsController objectAtIndex:0];
self.newsDetailText.text = [[detailText valueForKey:@"fullArticle"] description];
當試圖這樣fullArticle
爲null,大概是因爲objectAtIndex:0
不指定我需要獲取什麼對象的正確途徑。
請一些線索這對我來說!很明顯,一個菜鳥問題,所以代碼片段真的幫助!提前致謝!
的幫助解決方案從韋恩
韋恩指出,該請求不會立即發生。我需要使用請求中的回調來獲取我想要的數據。 Restkit以各種方式提供mappingResults
。您可以在RKMappingResult
下閱讀here。
這是我如何做它的工作。
//I REPLACE MY SERVER REQUEST WITH THIS
[[RKObjectManager sharedManager] getObjectsAtPath:getArticle parameters:nil success:^(RKObjectRequestOperation *operation, RKMappingResult *mappingResult) {
//HERE IS HOW I SET THE TEXT FIELD IN THE DETAIL VIEW CONTROLLER
self.newsDetailText.text = [[mappingResult.firstObject valueForKey:@"fullArticle"]description];
// ERROR HANDLING
} failure:^(RKObjectRequestOperation *operation, NSError *error) {
RKLogError(@"Operation failed with error: %@", error);
}];
韋恩,你太漂亮向右移動到我的下一個問題。這將顯示我實際上知道多少...回調是我做出的請求中的「成功」和「錯誤」參數?此外,我並沒有想到該請求沒有立即完成。我注意到,當我在日誌中顯示映射結果時,它們不會在視圖加載之後才顯示。不知道爲什麼我沒有接受。我將重新審視'RKMappingResult'文檔,試圖解釋如何將它實現到回調中。 – Ben
映射結果基本上只是一個數組,由回調提供給您,下載中返回的對象。 – Wain
Wain!我不知道我昨天爲什麼不能把它放在一起,但你的回調評論是現貨。感謝您的耐心和一致性。選中標記會發給你,我將編輯我的帖子以顯示如何使用它們。再次感謝。 – Ben