拥有:
@interface MyClass : NSObject {
NSString *name; // retained and synthesized
NSString *address; // retained and synthesized
}
我正在创建一个数组:
NSMutableArray *myArray; // retained and synthesized
用几个 MyClass 对象填充它:
MyClass *kat = [MyClass new];
kat.name = @"somestring";
kat.address = @"someotherstring"
[myArray addObject:kat];
[kat release];
如何获取某个索引处的对象?下面的代码一直给我空值,但它应该说明我需要什么..
MyClass *obj = (MyClass*)[myArray objectAtIndex:5];
NSLog(@"Selected: %@", obj.address); // = null :(
是选角有问题还是我忘记了什么?
最佳答案
MyClass *obj = (MyClass*)[myArray objectAtIndex:5];
NSLog(@"Selected: %@", obj.address); // = null :(
如果该代码正在打印 (null)
,则不可能是因为数组为空或 objectAtIndex:
失败。 objectAtIndex:
如果您尝试访问超出数组中对象计数的索引,并且数组不能包含“空洞”或 nil 引用,则会引发范围异常。
代码正常运行的唯一方法是:
myArray
为零;您没有为myArray
分配和/或分配数组实例。obj.address
返回 nil;您没有正确初始化实例(看起来您确实做到了)。
关于iPhone Obj-C - 从 NSMutableArray 检索自定义对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5435758/