2011-04-13 84 views
0
使用的NSMutableArray

我創建了兩個的UIImageView *圖像1和*圖像2,我創建了一個的NSMutableArray * arrayImage後,現在我要填補這個數組目標C:在不同的班級

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

,但我在創建的UIImageView和NSMutableArray裏ClassA,但我想在ClassB的.m中的viewdidload中填充NSMutableArray,然後Xcode告訴我image1和image2未聲明。我只是使用屬性和綜合。我能做什麼?

回答

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]; 
} 
+0

mi classA是@interface TableViewCell:UITableViewCell,當我編寫ClassB * classB;不要接受它。爲什麼? (我寫了導入) – CrazyDev 2011-04-13 10:27:03

+0

你在ClassA.h中做過#import @「ClassB」嗎? – Sabobin 2011-04-13 10:47:57

+0

是............ – CrazyDev 2011-04-13 10:53:30

0

使用委託模式,如果你的B類

id a; 

@property (nonatomic, assign) id a; 

和合成它通過你的類像

目的是乙級。

現在init您的B級在課堂上 然後,

b.a=self; 

完蛋了,現在你可以在viewDidLoad中使用B類爲

self.a.arrayImage 

,並在互聯網研究委託模式,你會有清晰的視野。 好運

+0

怎麼樣?...你有一個例子嗎? – CrazyDev 2011-04-13 09:39:50

+0

我編輯了ans – 2011-04-13 09:45:43