-1

在我的 xcode 项目中,每当我尝试使用:

#import "Class1.h"
NSMutableArray *array;
@implementation Class2
Class1 *class = [Class1 new];
array = class.array;

假设 Class1 中有一个叫做数组的东西。Xcode 构建它就像没有错误一样。但是,当我运行它时,屏幕会闪烁 class1 上的内容,然后崩溃并给我一个错误。我修复了一些其他代码。现在错误是:

[__NSArrayM objectAtIndex:]: index 0 beyond bounds for empty array

抱歉,我是 Obj-C 的新手。

4

2 回答 2

0

如果您希望您的数组成为 Class1 的属性,您需要在 Class1.h 文件中执行以下操作:

@interface Class1

@property (nonatomic, strong) NSMutableArray *array;

@end

然后您可以像在您发布的代码中一样访问该数组。

于 2012-12-22T04:31:31.337 回答
0

设计你的代码。设计模式。这些应该首先决定,然后编码更简单。

如我所见,您正在创建一个全局数组!!!这不好。如果您想要一个共享数组,请使用 SingletonClass/SharedClass。

或者你应该放入NSMutableArray *array;文件.h并分配+初始化它来访问它。

array = [class array];

此行不清楚,[class array]将返回 Class1 的数组,因此您的 Class2 中必须有 NSArray,您正在分配 Class1 的数组。

如果 Class2 有数组作为属性使用self.array=[class array];

于 2012-12-22T05:07:33.850 回答