我的目标是将一个字符串添加到数组中,然后在我调用的方法中执行此操作。
在这个方法中,我在数组中得到一个空值,并且不知道为什么。我在课程开始时就有这个:
NSMutableArray *listOfEvents;
以及我在每个事件上调用的方法:
-(void)EventList
{
[listOfEvents addObject:@"ran"];
NSLog(@"%@", listOfEvents);
}
我在日志中得到(null)
。
如果我将数组定义NSMutableArray *listOfEvents;
放在函数体中,每次都得到字符串值@"ran"
,因此数组总是只有一个值,而不是有许多名为{{的字符串1}}。
这有什么问题?似乎我无法理解有关数组的东西,即使我已多次阅读过这些文档。
答案 0 :(得分:5)
我假设你没有初始化listOfEvents
。
确保您在班级的listOfEvents = [[NSMutableArray alloc] init];
方法中init
。另外,请确保在课程的dealloc
方法中发布它。
答案 1 :(得分:3)
如果您在日志消息中收到nil
,则需要确保在添加对象之前listOfEvents为非零。 IE:
-(void)EventList
{
if (listOfEvents == nil) {
listOfEvents = [[NSMutableArray alloc] init];
}
[listOfEvents addObject:@"ran"];
NSLog(@"%@",listOfEvents);
}
在Objective-C中,发送到void
的{{1}}返回类型的邮件转到absolutely-silent nowhere-land.
此外,为了保持平衡,请务必在nil
实施中进行[listOfEvents release]
来电。
答案 2 :(得分:1)
显然你没有初始化阵列。
NSMutableArray *listOfEvents = [[NSMutableArray alloc] init];
如果这是您的问题,我建议您再次阅读文档。而不是NSMutableArray文档。返回 Objective-C编程语言和其他人。
答案 3 :(得分:1)
您需要alloc
NSMutableArray
。先试试这个 -
NSMutableArray *listOfEvents = [[NSMutableArray alloc] init];
在此之后你可以做你计划的事情......