2012-05-01 2 views
1

Хорошо, поэтому я довольно новичок в xcode, но я не могу найти что-то конкретное в этой проблеме в любом месте. Поэтому я объявляю массив и создать его экземпляр в следующих файлах:NSMutableArray Добавить/удалить объекты (унаследованный файл)

//xmlToUrl.h 

#import <Foundation/Foundation.h> 


@interface xmlToUrl : NSObject { 
    NSMutableArray *field; 
    NSMutableArray *name; 
} 
@property(nonatomic, retain)NSMutableArray *field; 
@property(nonatomic, retain)NSMutableArray *name; 

@end 

и

//xmlToUrl.m 

#import "xmlToUrl.h" 

@implementation xmlToUrl 
@synthesize field; 
@synthesize name; 

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

@end 

Так вот где я запутался. Я не знаю, как правильно «распределять» или «инициализировать» изменяемые массивы, а также как обрабатывать операции добавления/удаления из другого файла, который наследует xmlToUrl.h.

Код (в другом файле), так как у меня он сейчас просто печатает null. Его перечислены ниже. Что я делаю не так?!?

//nodeContent is just a NSMutableString 

[xmlToUrlObject.name addObject:nodeContent]; 
     NSLog(@"xml Name = %@", xmlToUrlObject.name); 

     //I omitted all the operational code here but if I NSLog nodeContent it prints the correct values 

[xmlToUrlObject.field addObject:nodeContent]; 
     NSLog(@"xml Field = %@", xmlToUrlObject.field); 

ответ

1

Вам необходима функция инициализации в файле реализации, он будет выглядеть примерно следующим образом

-(id) init 
{ 
    self = [super init]; 
    if (self) { 
    field = [[NSMutableArray alloc] init]; 
    name = [[NSMutableArray alloc] init]; 
    } 
    return self; 
} 

Тогда всякий раз, когда вы создаете экземпляр вашего класса xmlToUrl через [[xmlToUrl Alloc] инициализации] вам будет иметь экземпляр вашего класса, который уже инициализировал ваши два NSMutableArrays

+1

Работал отлично. Спасибо!! : D Мне не хватает репутации +1, но она заслуживает этого, если кто-то читает этот комментарий! – MrHappyAsthma

Смежные вопросы