键值编码数组问题

Posted

技术标签:

【中文标题】键值编码数组问题【英文标题】:key value coding array issue 【发布时间】:2011-07-11 09:51:39 【问题描述】:

我有以下课程:

@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】:

是的,您不能直接使用 KVC 访问数组。 但是,您可以使用 @sum、@avg 等聚合来计算总和、平均值

例如:@sum.message_count 将为您提供数组中所有消息的总消息数。您不必为此编写任何循环。

【讨论】:

以上是关于键值编码数组问题的主要内容,如果未能解决你的问题,请参考以下文章

UIGestureRecognizer 键值编码

改变数组的键值

带有键值编码和 BOOL 的 JSONKit

来自 xib 键值编码崩溃的 UITableHeaderFooterView

此类不符合 @IBInspectable 的键值编码

RestKit - 不符合键值编码