从NSArray中读取NSobject属性

时间:2012-05-15 15:56:02

标签: objective-c properties nsarray nsobject

我创建了这个类来存储关于Cd-rooms的Rss提要:

CdObject.h

@interface CdObject : NSObject{


NSString *title,*artist,*country,*company,*price,*year;

}

@property(nonatomic,retain)NSString *title,*artist,*country,*company,*price,*year;

CdObject.m

#import "CdObject.h"

@implementation CdObject
@synthesize title,artist,country,company,price,year;

@end

然后在解析xml时,我正在创建这个类的新实例,填充它们的属性(标题,艺术家等)并将它们推入NSMutableArray(cdListArray)

如何从cdListArray内部读取其中一个对象的属性?

Ex:NSLog(@"%@",[cdListArray objectAtIndex:0].title) ??? 

4 个答案:

答案 0 :(得分:3)

恕我直言,在所有这些情况下,简单的方法是valueForKey:和它的兄弟valueForKeyPath:

答案 1 :(得分:1)

尝试NSLog(@"%@",((CdObject*)[cdListArray objectAtIndex:0]).title)

答案 2 :(得分:1)

您只需将其投射到您想要的对象即可。如果你对这种方式的类型转换很偏执,你也可以在演员之前检查对象的类。

例如:

NSObject *firstObject = [cdListArray objectAtIndex:0];
if ( [firstObject isKindOfClass:[CdObject class]] )
{
    CdObject* cdFirstObject = (CdObject*)firstObject;
    NSLog(@"%@", cdFirstObject.title;
}

答案 3 :(得分:0)

我认为你需要施展:

NSLog(@"%@",[(CdObject *)[cdListArray objectAtIndex:0]] title);