NSInvalidArgumentException со строковым форматом

Пытаюсь писать в массив, но у меня проблема "NSInvalidArgumentException"

Я начинаю с цели C.

Вот часть моего кода:

int charIndex;
unichar testChar1, testChar2;
NSString *valeur1, *valeur2;
NSMutableArray* tableau1 = [NSMutableArray arrayWithCapacity:4];
NSMutableArray* tableau2 = [NSMutableArray arrayWithCapacity:4];

for(charIndex=0; charIndex < 4; charIndex++) {

    testChar1 = [_saisie.text characterAtIndex:charIndex];
    testChar2 = [[NSString stringWithFormat:@"%d", nombreChoisi] characterAtIndex:charIndex];

    NSLog(@"%C", testChar1);

    valeur1 = [NSString stringWithFormat:@"%C", testChar1];
    valeur2 = [NSString stringWithFormat:@"%C", testChar2];

    [tableau1 replaceObjectAtIndex:charIndex withObject:valeur1];
    [tableau2 replaceObjectAtIndex:charIndex withObject:valeur2];  
}

Все работает до строки 14, где переменная valeur1 принимает значение nil.
Я не знаю, в чем проблема.

Изменить: строка NSLog была здесь только для проверки {@"%C", value}, и она работает. Значение «nombreChoisi» выбирается заранее с помощью случайной функции, а «_saisie.text» исходит из текстового поля.


person Coconuts    schedule 26.06.2014    source источник
comment
Каковы значения _saisie.text и nombreChoisi? Что распечатывает ваша выписка из журнала?   -  person Zev Eisenberg    schedule 27.06.2014


Ответы (1)


Похоже, вы используете заглавную букву %C при построении valeur1 и valeur2. Разве вы не должны использовать нижний регистр %c?

person ghostatron    schedule 26.06.2014
comment
%C является допустимым значением в аргументе stringWithFormat:. См. developer.apple.com/library/ios/documentation/Cocoa/Conceptual/ - person KPM; 27.06.2014
comment
Я полностью пропустил, что символьная переменная была объявлена ​​как unichar, что технически делает заглавную C правильной: developer.apple.com/library/ios/documentation/Cocoa/Conceptual/ - person ghostatron; 27.06.2014