0

我已经阅读了无数关于在这个站点和其他站点上复制数组的问题,但没有一个直接解决我遇到的问题。

我已经声明并合成了一个名为 arrXTurbulenceValues 的属性:

@property (weak, nonatomic) NSArray *arrXTurbulenceValues;

@synthesize arrXTurbulenceValues;

我在 ViewDidLoad() 方法中初始化数组:

self.arrXTurbulenceValues = [[NSArray alloc] init];

一些处理发生在方法中,其中值存储到 NSMutableArray。在该处理结束时,我试图通过以下代码将 NSMutableArray 深度复制到 NSArray 属性中:

                self.arrXTurbulenceValues = [[NSMutableArray alloc] initWithArray:tempXvalues copyItems:YES];

复制失败,self.arrXTurbulenceValues 仍然为零。我试图复制的 tempXvalues 数组中包含 1900 多个 NSString 对象。

我究竟做错了什么?我已经尝试在 ViewDidLoad() 中使用 & 不进行初始化的复制代码,并且我还尝试将属性配置为 NSArray 和 NSMutableArray。

NSString 是否响应 NSCopying?看来,如果我正确阅读了文档。

与 Objective C 耦合的 iOS 环境是一场噩梦。我从未见过如此挑剔的事情。啊。

4

1 回答 1

2

假设您在 ARC 中运行,请尝试将“弱”更改为“强”:

@property (weak, nonatomic) NSArray *arrXTurbulenceValues;

进入:

@property (strong, nonatomic) NSArray *arrXTurbulenceValues;

在您的 -viewDidLoad 方法结束时,不再有对数组的强引用,并且它正在解除分配(这也消除了对它的所有弱引用)

于 2012-01-25T04:07:26.750 回答