gpt4 book ai didi

cocoa - Objective-C/cocoa 丢失数组值

转载 作者:行者123 更新时间:2023-12-03 16:50:58 25 4
gpt4 key购买 nike

我有多个数组,但是,它们不会保留数据以供其他方法使用。

这是我的设置方式(简化)

.h

NSArray *array;
@property (nonatomic, copy) NSArray *array;
-(void)someMethod:(NSArray*)someArray;
-(void)heresNewMethod;

.m

-(void)someMethod:(NSArray*)someArray
{
array = [someArray copy];
}
-(void)heresNewMethod //gets called by method not shown
{
NSLog(@"%@", array);
}

最佳答案

发生了以下两件事之一:

  • 您向对象发送了一条 someMethod: 消息,传递了 nil(可能无意)。发送到 nil 的消息返回 nil,因此您将 nil(作为 copy 消息的结果)分配给数组实例变量。即使您之前在那里存储了指向数组的指针,您也会在对此 someMethod: 消息的响应中将其替换为 nil
  • 您从未向对象发送过 someMethod: 消息。由于实例变量被初始化为 nil,并且您从未在 array 实例变量中放入任何不同的内容,因此它仍然包含 nil

在代码中添加更多 NSLog 语句来测试第一个理论。事实要么是其中之一,要么是另一个,因此证实第一个理论就反驳了第二个理论,反之亦然。

关于cocoa - Objective-C/cocoa 丢失数组值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3073142/

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