Возникли проблемы при добавлении объектов в NSMutableArray в Objective C
16166 просмотра
2 ответа
Я использую iPhone SDK, и у меня возникла проблема с выполнением чего-то простого. Я пытаюсь добавить NSNumber объект в NSMutableArray переменной экземпляра. Я попытался добавить карту NSNumber в NSMutableArray просматривают CardCarArray , однако, не нарушая, он не добавляется в массив. Вот код
/////////////////////////////////////////////////////
// Inside the header file Class.h
@interface MyViewController : UIViewController {
NSMutableArray *viewedCardsArray;
//snip ...
}
@property (nonatomic, retain) NSMutableArray *viewedCardsArray;
@end
/////////////////////////////////////////////////////
// Inside the methods file Class.m
#import "StudyViewController.h"
@implementation StudyViewController
@synthesize viewedCardsArray
//snip ...
- (IBAction)doShowCard {
//snip ...
NSNumber *cardIdObject = [[NSNumber alloc] initWithInt:(int)[self.currentCard cardId]];
[viewedCardsArray addObject: cardIdObject];
[cardIdObject release];
}
Таким образом, этот код выполняется, и, похоже, не имеет утечки (согласно инструменту производительности Leaks). Однако при пошаговом выполнении кода CardIdObject ни в коем случае не появляется в visibleCardsArray .
Просматривая SO, я знаю, что эти основные вопросы довольно часто встречаются у новичков ObjC (таких как я), поэтому заранее приносим извинения!
Автор: pchap10k Источник Размещён: 12.11.2019 09:12Ответы (2)
17 плюса
Вы инициализировали свой viewedCardsArray
? Если вам не нужно где-то - это обычно делается в init
методе для вашего класса:
- (id)init
{
self = [super init];
if(self) {
viewedCardsArray = [[NSMutableArray alloc] init];
}
return self;
}
Тогда это выпущено в dealloc
методе:
- (void)dealloc
{
[viewedCardsArray release];
[super dealloc];
}
Автор: Alex Rozanski
Размещён: 12.05.2009 09:32
3 плюса
Perspx наметил один способ инициализации массива. Однако вы также можете использовать методы класса, предоставляемые NSArray:
self. viewedCardsArray = [NSMutableArray array];
Это может пойти в init или в другом месте.
Примечание. Объект будет автоматически освобожден.
Автор: Alastair Stuart Размещён: 12.05.2009 02:08Вопросы из категории :
- objective-c Приложение для iPhone в ландшафтном режиме, системы 2008
- objective-c Как программно отправить смс на айфон?
- objective-c Открытие нестандартного URL в приложении Какао
- objective-c Каков наилучший способ перетащить NSMutableArray?
- objective-c Как работает пул автозапуска NSAutoreleasePool?
- iphone Как мне дать моим веб-сайтам значок для iPhone?
- iphone iPhone веб-приложения, шаблоны, рамки?
- iphone Приложение для iPhone, которое получает доступ к структуре Core Location через Интернет
- iphone Tips for a successful AppStore submission?
- iphone Могу ли я написать нативные приложения для iPhone с использованием Python
- cocoa Как мне создать временный файл с Какао?
- cocoa Как распечатать трассировку стека на консоль / журнал в Cocoa?
- cocoa Получение уникального идентификатора для окна другого приложения
- cocoa-touch Как мне определить размер UITextView для его содержимого?
- cocoa-touch iPhone viewWillAppear не стреляет
- cocoa-touch Как показать индикатор загрузки в верхней строке состояния