0
這一定是一個答案,只有我缺乏,因爲我無法在任何地方找到答案。
我正在學習ios上的RestKit,並最終設法讓它正確使用JSON,並完成關係(woohoo!)。
但是,我無法弄清楚我是如何從父類訪問子類的字段/數據。
例JSON: { 事件{ 名稱: 「健身走」, 說明: 「走在圈子裏」 位置{ 地名: 「你家後院」, 經度:-40.1234, 緯度:38.5678, address:「1600 Penn」 } }
所以我有一個事件類和一個位置類。事件類有一個指向該位置作爲一個成員變量(EventLocation * toLocation)包含的關係:
[RKObjectManager setSharedManager:objectManager];
RKEntityMapping * locationMapping = [RKEntityMapping mappingForEntityForName:@"EventLocation" inManagedObjectStore:managedObjectStore];
NSDictionary * locationInfo = @{ @"placename" : @"eventPlaceName", @"longitude" : @"longitude", @"latitude" : @"latitude", @"address" : @"eventAddress" };
[locationMapping addAttributeMappingsFromDictionary:locationInfo];
RKEntityMapping * eventMapping = [RKEntityMapping mappingForEntityForName:@"NYCEvent" inManagedObjectStore:managedObjectStore];
NSDictionary * eventInfo = @{ @"_id" : @"event_id", @"name" : @"event_name",@"desc" : @"event_description" };
[eventMapping addAttributeMappingsFromDictionary:eventInfo];
[eventMapping addPropertyMapping:[RKRelationshipMapping relationshipMappingFromKeyPath:@"location" toKeyPath:@"toLocation" withMapping:locationMapping]];
RKResponseDescriptor * responseDescriptor = [RKResponseDescriptor responseDescriptorWithMapping:eventMapping pathPattern:@"/api/search" keyPath:@"events" statusCodes:RKStatusCodeIndexSetForClass(RKStatusCodeClassSuccessful)];
而且作爲教程,我願把eventPlaceName文本中的UITableViewCell字幕。
- (void)configureCell:(UITableViewCell *)cell atIndexPath:(NSIndexPath *)indexPath
{
NSManagedObject *object = [self.fetchedResultsController objectAtIndexPath:indexPath];
cell.textLabel.text = [[object valueForKey:@"event_name"] description];
NSString * lbl = < somehow get the event place name>;
cell.detailTextLabel.text = lbl;
}
但我不知道如何。請幫幫我?
謝謝! :BP:
謝謝!雖然它沒有像廣告中那樣工作。我最終做的是:'Location * location = [event valueForKey:@「toLocation]; NSString * lbl = location.eventPlaceName;' –
@BillyPilgrim:'[event valueForKey:@」toLocation]''和'event.toLocation' *應該*相當。你提出的代碼是否有編譯器錯誤? –
沒有編譯器錯誤 - 運行時。進入雜草,發生核心數據錯誤。 「發生嚴重錯誤」或類似的情況 –