我在头文件中声明了一个属性NSMutableArray。然后我在viewDidLoad方法中分配,初始化它。但是当我尝试以不同的方法向数组添加对象时,它会一直返回(null)。我做了一些明显的错误吗?请询问您是否想要查看更多代码。
·H
@property (strong, nonatomic) NSMutableArray *myList;
的.m
- (void)viewDidLoad
{
self.dataController = [[DataController alloc]init];
self.myList = [[NSMutableArray alloc] init];
[super viewDidLoad];
}
[...]
NSDictionary *myObject = [self.dataController.objectList objectAtIndex:r];
[[cell textLabel]setText:[myObject objectForKey:@"title"]];
[self.myList addObject:myObject];
NSLog(@"myList %@",self.myList);
NSLog(@"myObject %@",myObject);
输出打印myObject但self.myList保持返回(null)。感谢所有帮助!
修改:已修复,谢谢您的回答!
答案 0 :(得分:1)
不确定您使用此阵列的位置。如果在调用viewDidLoad
之前必须使用此数组,则可以将其作为
NSDictionary *myObject = [self.dataController.objectList objectAtIndex:r];
[[cell textLabel]setText:[myObject objectForKey:@"title"]];
if (!self.myList)
self.myList = [[NSMutableArray alloc] init];//for the first time, this will initialize
[self.myList addObject:myObject];
由于您正在使用[cell textLabel]
我假设您在其中一个表视图委托中执行此操作。在这种情况下,请检查您是否在班级的任何位置设置了self.myList = nil;
。
答案 1 :(得分:0)
在您发布的代码中,我看到没有错误。 设置断点并查看是否首先调用初始化数组的代码。
答案 2 :(得分:0)
我敢打赌,当NSLog执行时,还没有调用viewDidLoad。
要确保数组已初始化,请尝试在init方法中初始化。