이렇게 간단한 작업을하는 것처럼 보입니다.하지만이 작업을 함께 처리 할 수는 없습니다. 내 CoreData 특성을 채우기 위해 RestKit 0.20을 사용하는 iOS 앱이 있습니다. 내 메인보기 컨트롤러는 시작시 서버에 요청하여 채워지는 컬렉션보기입니다.CoreData 엔터티에서 결과를 가져 오는 방법
사용자가 셀을 선택하면 해당 셀에 포함 된 데이터를 상세보기 (이미지 및 제목)로 전송할 수 있습니다. 그러나 detail viewController에 표시 할 모든 정보를 얻기 위해 서버에 또 다른 요청을해야합니다. 엔티티 이름이 Gist
과 속성이 여기에
fullArticle
가 여기에 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];
}
}
에 SEGUE입니다 것은 나는 아래의 코드를 사용하여 시도했다 -(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
fullArticle
을 시도
NSManagedObject *detailText = [self.fetchedResultsController objectAtIndex:0];
self.newsDetailText.text = [[detailText valueForKey:@"fullArticle"] description];
는 아마도 null입니다.
제발 좀 알려주세요. 코드 스 니펫이 실제로 도움이되도록 신참 질문을하는 것이 분명합니다! 미리 감사드립니다! 북두칠성
북두칠성의 도움으로
솔루션 요청이 즉시 발생하지 않는 것을 지적했다. 요청에 콜백을 사용하여 원하는 데이터를 수집해야했습니다. Restkit은 다양한 방법으로 mappingResults
을 제공합니다. 에서 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);
}];
Wain, 너는 내 다음 질문으로 바로 넘어 가기에는 너무 좋다. 이것은 실제로 내가 얼마나 많이 알고 있는지를 보여줄 것입니다 ... 콜백은 요청의'success'와'error' 매개 변수입니다. 또한 요청이 즉시 완료되지 않았 음이 내게 발생하지 않았습니다. 로그에 매핑 결과를 표시 할 때까지 뷰가로드 될 때까지 표시되지 않습니다. 왜 내가 그걸 받아들이지 않았는지 모르겠다. 'RKMappingResult' 문서를 다시 방문하여 콜백에 구현하는 방법을 시도해 봅니다. – Ben
매핑 결과는 기본적으로 콜백에 의해 제공된 다운로드에서 반환 된 객체의 배열입니다. – Wain
Wain! 나는 어제 이것을 왜 끼워 넣을 수 없었는지 모르지만 당신의 콜백에 대한 언급이 자리하고있었습니다. 인내심과 일관성을 가져 주셔서 감사합니다. 체크 표시가 나타나면 내 게시물을 편집하여 사용법을 보여줍니다. 다시 한번 감사드립니다. – Ben