проблема с массивом кодирования значения ключа - PullRequest
0 голосов
/ 11 июля 2011

У меня есть следующий класс:

@interface Topics : NSObject {
    NSNumber * _until_id;
    NSArray * _topics;
}

@property (nonatomic, retain) NSNumber * until_id;
@property (nonatomic, retain) NSArray * topics;
@end

/////////////////////////////////////////////////////////////////////////

@class Login;

@interface Topic : NSObject {
    NSString * _name;
    Login * _creator;
    NSNumber * _message_count;
    NSNumber * _date_latest_message;
    NSNumber * _date_created;
    NSNumber * _tracked;
    NSNumber * _unread;
    NSNumber * _tid;
    NSString * _kind;
    NSNumber * _id;
}

@property (nonatomic, retain) NSString * name;
@property (nonatomic, retain) Login * creator;
@property (nonatomic, retain) NSNumber * message_count;
@property (nonatomic, retain) NSNumber * date_latest_message;
@property (nonatomic, retain) NSNumber * date_created;
@property (nonatomic, retain) NSNumber * tracked;
@property (nonatomic, retain) NSString * kind;
@property (nonatomic, retain) NSNumber * unread;
@property (nonatomic, retain) NSNumber * tid;
@property (nonatomic, retain) NSNumber * gid;
@property (nonatomic, readonly) NSString* topicNavURL;

@end

Теперь я пытаюсь получить доступ к названию определенной темы, используя:

RKObjectMapping* mapping = [RKObjectMapping mappingForClass:[TTTableTextItem class]];
 [mapping mapKeyPath:@"topics.name" toAttribute:@"text"];
 [mapping mapKeyPath:@"topics.topicNavURL" toAttribute:@"URL"];

Однако, это терпит неудачу, так как говорит, что не находит названия, поскольку темы - это NSArray. Есть ли способ сделать KVC, если я имею дело с массивом? Тогда это просто NSString?

1 Ответ

0 голосов
/ 11 июля 2011

Да, вы не можете получить доступ к массиву напрямую, используя KVC.Однако вы можете использовать агрегаты, такие как @sum, @avg для вычисления суммы, среднее значение

Например: @ sum.message_count даст вам общее количество сообщений всех сообщений в массиве.Вам не нужно для этого писать цикл.

...