Добавить NSString к NSMutableString, вызывает исключение - PullRequest
1 голос
/ 11 июня 2011

Я получаю доступ к определенному элементу NSMutableArray (nid) и сохраняю его в NSString (num).

После этого я хочу объединить этот элемент (num) с URL-адресом (NSMutableString) и использовать метод appendString, но получаю исключение.

как я могу это исправить?

под кодом:

NSMutableArray nid; 
....

NSUInteger row = [indexPath row];
NSString *num = [nid objectAtIndex:row];

NSMutableString *url = [[NSMutableString alloc]
                        initWithString:@"http://example.com/prova/"];

[url appendString:num];

Ответы [ 2 ]

4 голосов
/ 11 июня 2011

- [Длина NSCFNumber]: нераспознанный селектор отправлен в экземпляр 0x4b54de0 * Завершение работы приложения из-за необработанного исключения 'NSInvalidArgumentException', причина: '- [NSCFNumber length]: нераспознанный селектор отправлен в экземпляр 0x4b54de0'

В соответствии с исключением, похоже, что objectAtIndex: возвращает NSNumber вместо NSString.Если nid содержит числа, вам нужно преобразовать их в строки, прежде чем вы сможете передать их в appendString:

NSUInteger row = [indexPath row];
NSNumber *num = [nid objectAtIndex:row];
NSString *numStr = [num stringValue];

NSMutableString *url = [[NSMutableString alloc]
                        initWithString:@"http://example.com/prova/"];

[url appendString:numStr];

...

[url release];
1 голос
/ 11 июня 2011

nid - это array, который возвращает число, а не NSString, поэтому NSNumber возвращается с помощью следующего оператора

NSString *num = [nid objectAtIndex:row]; // Wrong statement 

NSNumber* num = [nid objectAtIndex:row]; // Correct statement 

Так твой код должен быть ..

NSMutableArray nid; 
....

NSUInteger row = [indexPath row];

//your array contain NSNumber type of pointer NOT NSString.
NSNumber *num = [nid objectAtIndex:row];

//Get a NSString object from a NSNumber.
NSString *myString = [num stringValue];

NSMutableString *url = [[NSMutableString alloc]
                        initWithString:@"http://example.com/prova/"];

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