我有一个数组,我在其中添加对象,但即使添加了对象,数组也保持为空。以下是代码:
Event.h
@interface Event : NSObject
@property NSString *name;
@end
将对象添加到数组的代码
NSMutableArray *events;
NSArray *event_string = [NSArray arrayWithObjects:@"Egg Benedict", @"Mushroom Risotto", @"Full Breakfast", @"Hamburger", @"Ham and Egg Sandwich", @"Creme Brelee", @"White Chocolate Donut", @"Starbucks Coffee", @"Vegetable Curry", @"Instant Noodle with Egg", @"Noodle with BBQ Pork", @"Japanese Noodle with Pork", @"Green Tea", @"Thai Shrimp Cake", @"Angry Birds Cake", @"Ham and Cheese Panini", nil];
for (NSString *currentEventString in event_string) {
Event *currentEvent = [Event new];
[currentEvent setName:currentEventString];
[events addObject:currentEvent];
}
NSLog(@"Number of events:%d",[events count]);
我收到了这个输出:
Number of events:0
答案 0 :(得分:3)
你必须先启动这个数组。
NSMutableArray *events = [NSMutableArray new];
答案 1 :(得分:2)
您必须按以下方式启动事件数组:
NSMutableArray *events = [[NSMutableArray alloc]init];
答案 2 :(得分:2)
Tomasz说 - 你需要分配和初始化你的数组。现在,指向数组对象的指针为空。
您得到奇怪结果的原因是Objective C(与Java,C ++和C#等语言不同)很乐意让您调用null对象上的方法而不会崩溃或抛出异常。结果是“0”值,例如指针/对象为null,计算为0等。
它有点不同,但实践中效果很好,并且简化了许多算法。