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

标签 iphone objective-c arrays object

拥有:

@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/

相关文章:

arrays - 在一个巨大的二维数组matlab中找到两个元素的数组

iphone - 如何将数组写入 Objective-C 的 sqlite 数据库?

iphone - Objective C : UIButton, UIBarButtonItem, UIBarButtonItemStyle, UIBarButtonSystemItem

ios - 线程1 : Fatal error: UnsafeMutablePointer. 初始化重叠范围

objective-c - 这是在 iOS8 中获取文档目录路径的最佳方式

ios - ALAssetsLibrary无效或为null

javascript - 如何修改对象的javascript数组,例如将对象值修改为键值对

ios - 如何绑定(bind)在 objc 中更改的枚举变量?

objective-c - UITableViewCell高度计算和委托(delegate)?

java - 我应该如何分隔以下三个字符串?