Цель C: использовать NSMutableArray в разных классах - PullRequest
0 голосов
/ 13 апреля 2011

Я создал два UIImageView * image1 и * image2, после того как я создал NSMutableArray * arrayImage, теперь я хочу заполнить этот массив

arrayImage = [[NSMutableArray alloc] initWithObjects: image1, image2, nil];

но я создал UIImageView и NSMutableArray в ClassA, но я хочу заполнить NSMutableArray в viewdidload в .m ClassB, затем Xcode сообщает мне, что image1 и image2 не объявлены. Я просто использовал собственность и синтезировал. Что я могу сделать?

Ответы [ 2 ]

0 голосов
/ 13 апреля 2011

Вы можете попробовать что-то вроде этого, вы должны сохранить ссылку на classB внутри classA, чтобы, когда вы хотите добавить представление к массиву в classB, вы могли получить доступ к свойствам classB через свойство clasB classA. Попробуйте что-то вроде этого.

//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];
}
0 голосов
/ 13 апреля 2011

используйте шаблон делегирования и передайте вашему классу объект в класс b, как

, если ваш класс b

id a;

@property (nonatomic, assign) id a;

, и синтезируйте его.

теперь инициализируйте ваш класс bтогда в классе a

b.a=self;

и теперь вы можете использовать его в viewdidload в классе b как

self.a.arrayImage 

и изучать шаблон делегата в Интернете, и вы получите четкое представление.удачи

...