gpt4 book ai didi

ios - 如果从外部调用,NSMutableArray 为空?

转载 作者:行者123 更新时间:2023-11-28 20:14:09 25 4
gpt4 key购买 nike

我有一个从 sqlite 表中读取数据并将数据保存在 NSMutableArray 中的应用程序,该数组在 UIViewController 的主 ViewController 类子类中声明,此方法在 viewDidLoad 中调用。这个 NSMutable 数组声明如下:

@property (strong, nonatomic) NSMutableArray *dataForTable;

此数据显示在一个表格中,该表格在应用程序启动时加载良好。现在我声明一个方法来记录这个 NSMutableArray 的内容

-(void) arrayTest {
NSLog(@" data in test array is%@",dataForTable);}

当我在这个类中的任何地方调用它时,输出也很好,例如在

-(BOOL)textFieldShouldBeginEditing:(UITextField *)textField{
[self arrayTest]; . . . . . . }

但是当我从另一个类调用 log 时,这个 NSMutableArray 中的数据突然变为(空)(UITableViewCell 的一个子类创建用于跟踪从左到右滑动单元格的 touchbegan 和 touchmoved)

[[ViewController alloc]arrayTest];

这给了我输出

data in test array is(null)

这是为什么呢?现在,如果我调用 -textFieldShouldBeginEditing,输出又好了。为什么数组本身会清空(或者也许我只是认为它会清空)然后稍后再次输出内容?

最佳答案

您可能没有在 init 方法中分配数组。仅仅因为您为数组声明了一个 @property,并不意味着它是为您创建的:

- (id)init {
self = [super init];
if (self) {
self.arrayTest = [NSMutableArray array];
}
return self;
}

关于ios - 如果从外部调用,NSMutableArray 为空?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18790252/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com