在我的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的新手。
答案 0 :(得分:0)
如果您希望您的数组是Class1的属性,则需要在Class1.h文件中执行以下操作:
@interface Class1
@property (nonatomic, strong) NSMutableArray *array;
@end
然后您可以像发布的代码一样访问数组。
答案 1 :(得分:0)
设计代码。设计模式。这些应该首先确定,然后编码更简单。
我可以看到你正在创建一个全局阵列!哪个不好。如果你想要一个共享数组,请使用SingletonClass / SharedClass。
或者你应该将NSMutableArray *array;
放在.h
文件中并使用alloc + init来访问它。
array = [class array];
这一行不清楚,[class array]
将返回Class1的数组,因此您必须在Class2中使用NSArray来分配Class1的数组。
如果Class2将数组作为属性使用self.array=[class array];