iPhone Obj-C - 从NSMutableArray中检索自定义对象

yos*_*osh 2 arrays iphone object objective-c

有:

@interface MyClass : NSObject {
    NSString *name; // retained and synthesized
    NSString *address; // retained and synthesized
} 
Run Code Online (Sandbox Code Playgroud)

我正在创建一个数组:

NSMutableArray *myArray; // retained and synthesized
Run Code Online (Sandbox Code Playgroud)

用几个MyClass对象填充它:

MyClass *kat = [MyClass new];
kat.name = @"somestring";
kat.address = @"someotherstring"
[myArray addObject:kat];
[kat release];
Run Code Online (Sandbox Code Playgroud)

如何在某个索引处获取对象?下面的代码一直给我null,但它应该说明我需要的东西..

MyClass *obj = (MyClass*)[myArray objectAtIndex:5];
NSLog(@"Selected: %@", obj.address); // = null :(
Run Code Online (Sandbox Code Playgroud)

铸造有什么问题,或者我忘了什么?

bbu*_*bum 6

MyClass *obj = (MyClass*)[myArray objectAtIndex:5];
NSLog(@"Selected: %@", obj.address); // = null :(
Run Code Online (Sandbox Code Playgroud)

如果该代码正在打印(null),则不能是因为该数组为空或objectAtIndex:失败. objectAtIndex:如果您尝试访问超出数组中对象计数的索引并且数组不能包含"holes"或nil引用,则会抛出范围异常.

代码在没有发生事故的情况下运行的唯一方法是:

  • myArray没有; 你没有分配和/或分配数组实例myArray.

  • obj.address返回零; 你没有正确初始化实例(它看起来你做了).