我基本上有一个 UIViewController
的自定义子类,它有一个名为 waypoints
的 NSMutableArray
。我在 Controller 的 -(void)viewDidLoad
方法中初始化它
waypoints = [[NSMutableArray alloc] init];
稍后,在通过 presentedViewController
调用的方法中,使用一些参数包括 NSMutableDictionary
作为 waypointData
,我调用
[waypoints insertObject:waypointData atIndex:0];
我也试过了
[waypoints addObject:waypointData];
但似乎都不起作用!
我在那里记录了一些东西以使其更清楚。参数正确传输,保存在 waypointData
下的 NSMutableDictionary
是正确的内容。在插入之前记录 waypoints
数组显示它是空的(这是正确的;应用程序已启动;尚未添加数据)并且在插入之后它仍然是空的。日志:
2014-02-19 14:40:11.050 xxx[xxx] waypoints before insertion: (null:)
2014-02-19 14:40:11.051 xxx[xxx] INSERT WAYPOINT
2014-02-19 14:40:11.052 xxx[xxx] waypoints after insertion: (null:)
INSERT WAYPOINT 在插入之前直接被记录下来,所以程序例程实际上是在执行 insertObject:atIndex
: 方法。
长话短说:
即使调用 NSMutableArray
的 insertObject:atIndex:
(和 -addObject:
),对象也不会插入到数组中。
编辑:
此方法也在 -viewDidLoad
中调用:
- (void)loadWaypoints {
id unarchivedObject = [NSKeyedUnarchiver unarchiveObjectWithFile:[[self applicationDocumentsDirectory] stringByAppendingString: kAppDataFilePlistName]];
waypoints = (NSMutableArray *)unarchivedObject;
}
unarchivedObject
当然是 NULL
如果还没有保存任何东西。感谢 0x7fffffff。
最佳答案
检查你的 waypoints
NSArray
当你调用 [waypoints addObject:waypointData]; 时它不应该是
nil
;
关于iOS - NSMutableArray 不会被填充,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21882608/