iOS - NSMutableArray 不会被填充

标签 ios iphone objective-c cocoa

我基本上有一个 UIViewController 的自定义子类,它有一个名为 waypointsNSMutableArray。我在 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: 方法。

长话短说: 即使调用 NSMutableArrayinsertObject: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/

相关文章:

ios - Xcode 更新后库停止工作。 react native 0.62.2

ios - UISearchController 中范围栏的定位

iPhone SDK - 避免转换委托(delegate)类

ios - 从 UILongPressRecognizer 中确定用于 segue 的单元格

ios - 使用 iOS AVPlayer 时由于内存压力而终止

objective-c - 如何将动态创建的 NSCheckbox 标签添加到 Cocoa 中的数组中

ios - 在桌面上开发的移动应用程序如何工作?

ios - 添加计时器以更新 UIView 背景颜色

ios - UITapGesture 仅识别 UIImageView 边框上的点击

objective-c - 关键当量。对于 nsbutton 对于多个 nsbuttons 不能正常工作