Как скопировать один массив в другой массив, который не входит в тот же класс в цели c? - PullRequest
0 голосов
/ 14 апреля 2011

Hello
Я хочу скопировать элементы одного массива в другой массив, который находится в другом классе.
Для этого я пробовал различные способы, такие как

Оба массива не принадлежат одному и тому же классу.
Например, secondArray находится в файле first.h, а массив - в файле second.h, тогда, когда я создал объект класса second.h следующим образом:

second *sec; //(in first.h)

и синтезировал его
и затем я попытался скопировать массив следующим образом: sec = [[Second alloc] init];
sec.array = secondarray;
но когда я обращаюсь к массиву во втором классе, он показывает, что массив равен нулю

У кого-нибудь есть идеи по этому поводу?или любой пример кода?

Ответы [ 2 ]

1 голос
/ 14 апреля 2011

Попробуйте сделать что-то в этом духе, я не видел ваш код, так что, возможно, это не точное решение вашей проблемы, но, надеюсь, это поможет вам понять передачу сообщений, необходимую для решения вашей проблемы.

//FirstClass .h file
#import @"SecondClass.h"
@interface FirstClass : NSObject {
    NSArray         *firstArray; 
    SecondClass     *sec; 
}
@property(nonatomic, retain) NSArray        *firstArray; 
@property(nonatomic, retain) SecondClass    *sec; 
@end

//Add this to FistClass .m file
@synthesize firstArray, sec; 

-(id)init{
    if(self == [super init]){
        sec = [[SecondClass alloc] init];
        firstArray = [[NSArray alloc] initWithArray:sec.secondArray];
    }
    return self; 
}

-(void)dealloc{
    [firstArray release];
    [super dealloc];
}

//SecondClass .h file
@interface SecondClass : NSObject {
    NSMutableArray          *secondArray;  
}
@property(nonatomic, retain) NSMutableArray     *secondArray; 
@end

//Add this to SecondClass .m file
@synthesize secondArray; 

-(id)init{
    if(self == [super init]){
        secondArray = [[NSMutableArray alloc] initWithObjects:@"Obj1", @"Obj2", @"Obj3", nil];//etc... 
        //Maybe add some more objects (this could be in another method?)
        [secondArray addObject:@"AnotherObj"];

    }
    return self; 
}

-(void)dealloc{
    [secondArray release];
    [super dealloc];
}
0 голосов
/ 14 апреля 2011

Просто выкрикиваю предложение из моей головы, но попробуйте sec.array = secondarray.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...