我创建了一个NSMutableArray * arrayImage之后创建了两个UIImageView * image1和* image2,现在我想填充这个数组
arrayImage = [[NSMutableArray alloc] initWithObjects: image1, image2, nil];
但我在ClassA中创建了UIImageView和NSMutableArray但是我想在ClassB的.m中的viewdidload中填充NSMutableArray,然后Xcode告诉我image1和image2是未声明的。我只是用了属性和合成。我该怎么办?
答案 0 :(得分:0)
使用委托模式并将您的类传递给类b,如
如果你的班级b
id a;
@property (nonatomic, assign) id a;
并合成它。
现在在课堂上初始化你的班级 那么,
b.a=self;
现在你可以在b类的viewdidload中使用
了self.a.arrayImage
在互联网上研究代表模式,你会有清晰的看法。 祝你好运
答案 1 :(得分:0)
你可以尝试这样的事情,你必须在classA中保持对classB的引用,这样当你想在classB中向数组添加一个视图时,你可以通过classA的clasB属性访问classB的属性。尝试这样的事情。
//ClassA .h file
#import @"ClassB.h"
@interface ClassA : UIViewController {
UIImageView *view1, view2*;
ClassB *classB;
}
@end
//Inside ClassA .m file
-(void)viewDidLoad{
//construct view1 and view2 here or make the IBOutlets and link them in IB
classB = [[ClassB alloc] init];
[classB.imageArray addObject:view1];
[classB.imageArray addObject:view2];
}
//ClassB .h file
@interface ClassB : UIViewController {
NSMutableArray *imageArray;
}
@property(nonatomic, retain) NSMutableArray *imageArray;
@end
//Inside ClassB .m file
@synthesize imageArray;
-(id)init{
if (self = [super init]){
imageArray = [[NSMutableArray alloc] init];
}
return self;
}
-(void)dealloc{
[imageArray release];
[super dealloc];
}