NSMutable addObject проблема - PullRequest
       1

NSMutable addObject проблема

0 голосов
/ 19 июля 2011

Здесь Нуб застревает и, вероятно, делает что-то глупое и будет признателен за некоторые рекомендации.

Я объявил NSMutableArray (resultArray) в моем файле .h, установил @property и @synthesize в .mфайл.

В initWithNibName я делаю alloc и init для массива:

- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil {
    if ((self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil])) {
        // Custom initialization
        resultArray = [[NSMutableArray alloc] init];
    }
    return self;
}

И в одном из моих методов я пытаюсь сделать addObject в цикле for, но что бы я ни пытался, массив, кажется, не содержит объектов (используя либо objectAtIndex, либо count):

for (int i=[resultNumber length]; i>0; i--) {   
    NSString *theNumberRes = [NSString stringWithFormat:@"%c",[resultNumber characterAtIndex:i-1]]; 
    [resultArray addObject:theNumberRes];
}

NSLog(@"array count: %i", [resultArray count]);

Я могу пройти по коду и увидеть код, проходящий через цикл столько раз, сколько ожидалось, но NSLog никогда не дает результат, отличный от 0 (и при наведении курсора на resultArray всегда отображается 0 объектов.) Вкратце, каждый объект в массиве должен быть символом строки в обратном порядке, например, если resultNumber равен 12345., массив должен хранить 5,4,3,2,1).

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

Пожалуйста, кто-нибудь может посоветовать мне, как это работает?

Ответы [ 2 ]

1 голос
/ 20 июля 2011

Вопрос в том, будет ли вызван метод - (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil.Существуют другие подпрограммы инициализации, такие как

-(id)init; 
-(id)initWithCoder:(NSCoder)aDecoder;

Если ваше представление загружается из файла .xib, существует вероятность, что вызывается последнее, а не то, в котором вы инициализируете массив.*

0 голосов
/ 20 июля 2011

%c - это то, что вас портит.Смотрите здесь

http://developer.apple.com/library/mac/#documentation/Cocoa/Conceptual/Strings/Articles/formatSpecifiers.html#//apple_ref/doc/uid/TP40004265-SW1

Это для 8-битных беззнаковых символов.Если ваша строка содержит символы utf-8, это не будет работать.Вы можете использовать% C или использовать NSString initWithBytes:length:encoding

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