ios - 对象自动设置为零

标签 ios objective-c variables null

首先是我的代码:

- (void)viewDidLoad {
    [super viewDidLoad];

    self.elements = [NSMutableArray arrayWithObjects:@"Object 1", @"Object 2", @"Object 3", nil];
    self.elements2 = @"Lorem ipsum";
    NSLog(@"%@", self.elements);

    [self loadContent];
}

他打印出,_elements 在 loadContent 之后也被正确初始化,_elements 包含三个对象。 但是在 viewDidLoad 方法之后直接调用的 numberOfComponentsInPickerView: 方法后面只有几行,_elements 是 nil。 我不知道为什么我的应用程序将 _elements 设置为 nil

谢谢 iComputerfreak


编辑

我将我的完整代码上传到 gist.github: https://gist.github.com/iComputerfreak/fa3d3ee925c45cd6e1f2


控制台输出

好的,这里是我的控制台输出:

// in viewDidLoad (after setting): 
2014-05-13 16:56:14.292 HFG Vertretungsplan[1051:60b] (
    "Object 1",
    "Object 2",
    "Object 3"
)
// numberOfComponents called automatically:
2014-05-13 16:56:14.298 HFG Vertretungsplan[1051:60b] numberOfComponentsInPickerView: (null)
2014-05-13 16:56:14.303 HFG Vertretungsplan[1051:60b] numberOfComponentsInPickerView: (null)
// viewWillAppear method reached:
2014-05-13 16:56:14.306 HFG Vertretungsplan[1051:60b] View will appear
2014-05-13 16:56:14.306 HFG Vertretungsplan[1051:60b] Elements in viewWillAppear: ( // NSLog("%@", self.elements);
    "Object 1",
    "Object 2",
    "Object 3"
)
// [self.elementsPicker reloadAllComponents];
2014-05-13 16:56:14.307 HFG Vertretungsplan[1051:60b] numberOfComponentsInPickerView: (null)
2014-05-13 16:56:14.308 HFG Vertretungsplan[1051:60b] Elements after reloadAllComponents: (
    "Object 1",
    "Object 2",
    "Object 3"
)

所以只有在重新加载组件时元素才为零。前后都有内容。

最佳答案

覆盖你的_elements getter

- (NSMutableArray *)elements
{
    if (!_elements)
        _elements = [[NSMutableArray alloc] init];
    return _elements;
}

第一次调用_elements就像

self.elements

关于ios - 对象自动设置为零,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23631937/

相关文章:

ios - 我如何使用 swiftlint 强制每个 swift 文件必须包含指定的 header 值?

ios - 如何修复 Alamofire 5 错误 : "Cannot specialize non-generic type ' DataResponseSerializer'"?

iPhone - 从 UIWindow 启动 UIImagePickerController

像 Swift 一样使用 Enum 进行 Objective-C 错误处理

ios - 在 tableView 中检索选定的行

ios - 有没有办法检测 NSDate 在哪个千年?

php - 将 url 变量传递到下一页?

ios - Swift iOS - 即使存在有效数据,Firebase 是否有可能破坏数据并返回零值?

c 变量递增时变为 -17918

MySQL PDO - 用变量完成请求的最佳方法是什么?