Копировать массив в переменную массива другого класса - PullRequest
0 голосов
/ 16 декабря 2011

Я пытаюсь скопировать массив в моем ViewController в класс хранения данных. Ни один из методов копирования массива, которые я нашел, на самом деле не работает. В настоящее время у меня есть ..

   //XML parser is returning an array of parsed objects
    NSMutableArray *randomtesting = [parser listArray];
    customerList.list =[[NSMutableArray alloc] initWithArray:randomtesting copyItems:YES];

    NSLog(@"First node randomtesting: %@",[randomtesting objectAtIndex:0]);
    NSLog(@"First node customerList: %@",[customerList.list objectAtIndex:0]);

Первый NSLog выводит значение правильно. Вторая распечатывает ноль. Я также пытался

customerList.list =randomtesting;

и

customerList.list = [paser listArray];

.h моего Viewcontroller для этого класса выглядит следующим образом

#import <UIKit/UIKit.h>


@class CustomerListData;

@interface ViewController : UIViewController <UIAlertViewDelegate, UITextFieldDelegate>{

    CustomerListData *customerList;

}


@property (nonatomic, retain) CustomerListData *customerList;

.h. Класса переменной массива

 #import <Foundation/Foundation.h>

 @interface CustomerListData : NSObject{

   NSMutableArray *list;
 }


 @property (nonatomic, retain) NSMutableArray *list;

 @end

.m просто

@synthesize list;

Я считаю, что все мои объявления переменных верны, я просто не копирую их правильно. Но мне кажется, ни один из методов не работает.

Спасибо.

1 Ответ

2 голосов
/ 16 декабря 2011

Вы инициализируете свойство ViewController customerList где-нибудь, т.е. делаете что-то вроде этого:

self.customerList = [[[CustomerListData alloc] init] autorelease];

Если нет, то это свойство будет nil, и все ваши попытки доступа к дочернему свойству customerList.list будут молча завершаться неудачей, поскольку вы отправляете сообщение Objective C на nil.

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