我有一个类,它有几个属性,它看起来像这样:
@interface PlaceHolder : NSObject
@property (strong, nonatomic) NSString *name;
@property (strong, nonatomic) NSString *description;
@property (strong, nonatomic) NSString *webPage;
@property (strong, nonatomic) NSNumber *latitude;
我需要的是创建一个数组来保存该类的对象。很明显,属性不会为零,并且每次都会不同。因此,该数组必须有数百个 PlaceHolder 对象,并且应该可以获得任何该对象及其属性的信息。但是,当我尝试创建该数组时,在 NSLog 中我看到它只包含 (NULL) 对象。这也是我尝试将对象添加到数组的方式:
在标题中我写道:
@property (strong, nonatomic) PlaceHolder *place;
然后:
self.place = [[PlaceHolder alloc]init];
self.place.name = nameString;
NSLog(@"%@ name???", self.place.name);
[self.placeObjectsArray addObject:self.place];
self.place.name 不是零,而且数组仍然是空的。好吧,这不是真的,它不是空的,但它只包含(空)对象。如何用我类(class)的对象填充数组?
如有任何建议,我们将不胜感激!
更新:
我这样初始化数组 -
-(id)initWithDelegate:(id)delegateObj{
...
self.placeObjectsArray = [NSMutableArray array];
...
return self;
}
更新:现在,当我尝试以相同的方法初始化分配数组(而不是设置@property 和强关系)时,我可以在 NSLog 中看到它。我想知道为什么当我使用设置为属性的数组时它不会发生。
最佳答案
您需要分配初始化您的可变数组;
NSMutableArray *myArray = [[NSMutableArray alloc]initWithObjects:self.place,nil];
或者只是
NSMutableArray *myArray = [[NSMutableArray alloc]init];
然后您可以使用 for 循环或您需要的任何内容添加对象,使用以下命令:
for ( YOURINSTRUCTION )
{
[myArray addObject:YOUROBJECT]
}
关于ios - 创建一个包含自定义类对象的数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24243129/