2012-01-05 2 views
0

У меня есть строка, содержащую три слова, разделенное по трубопроводу (|) Я хочу, чтобы разбить их на три отдельные строкиNSArray compontentsSeperatedByString возвращает непризнанный селектор

NSArray *bits = [word.variants componentsSeparatedByString: @"|"]; 

NSLog(@"BITS: %@", bits); 

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

-[__NSArrayI componentsSeparatedByString:]: unrecognized selector sent to instance 0x6dbfa80 

Любые идеи?

+2

Скорее всего потому, что 'word.variants' не является' NSString'. Уверен? –

+1

Это не может вернуть непризнанный селектор. Это может привести к исключению с этим именем. Каково точное исключение? – dasdom

+0

добавил исключение в мой пост – Magnus

ответ

0

Вы не дали нам сообщение об ошибке всего, но моей ставке: Вы overreleasing либо слова или варианты, и для этого сообщения получают другим объект, который не имеет метода, упомянутого в селекторе. Попробуйте NSZombieEnbled. Вы найдете достаточно сообщения об этом в StackOverflow.

редактировать
Ошибки отправленной вам подходит моему предположению. Единственное другое объяснение: variants - NSArray.

+0

Фактически, это был массив. Я переделал его сейчас, и он работает. Спасибо что подметил это! – Magnus

+0

'Варианты' - NSArray -' __NSArrayI'mutable –

0

Сделать это следующим образом, предполагая, что variants в NSString

NSString *lvariant = word.variants; 
NSArray *bits = [lvariant componentsSeparatedByString: @"|"]; 
+2

Назначение объекта другому указателю не должно ничего менять. – vikingosegundo

+0

попробовал это, все еще получил то же исключение – Magnus

+0

Вы уверены, что 'word.variants' возвращает' NSString'? – Ilanchezhian

2

У меня есть также та же проблема, а моя строка имея так много белого символа, символ новой строки, так что я не могу ничего делать, но в конце концов я получил решение согласно следующим:

NSString *artwork = [currentURL valueForKey:@"artwork_large"]; 
    //i got the string artwork ,which is fetch from json. 

[smg addObject:artwork]; 
    // add this string to 0th index of an array name:smg 


NSSet *setObj1 = [NSSet setWithArray:smg]; 
     //make the nsset for my array (named :smg) 

NSString *pictureName = [[setObj1 allObjects] componentsJoinedByString:@","]; 
     //make the string from all the sets joined by "," 


picArray = [pictureName componentsSeparatedByString:@","]; 
     //now its time for normal operation means makes the array (name: picArray) from string by componenet separatedbystring method 

таким образом, что теперь я получил идеальный массив который находится под нашим контролем

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