Objective-C: Инициализация char с помощью char по индексу строки - PullRequest
3 голосов
/ 07 июня 2010
unichar myChar = [myString characterAtIndex:0];
[myNSMutableArray addObject:myChar];

Я пытаюсь вставить первый символ строки в массив, чтобы создать массив символов. первая строка не дает мне ошибки. Однако во второй строке выдается следующая ошибка: warning: passing argument 1 of 'addObject:' makes pointer from integer without a cast

Это также приводит к сбою приложения с ошибкой «неверный адрес». Я думал, что эта ошибка была из-за проблемы с распределением памяти. Может кто-нибудь пролить свет на это.

Ответы [ 2 ]

5 голосов
/ 07 июня 2010

Вы можете добавлять объекты только в массив.unichar - это примитивный тип данных.Вы должны обернуть его в NSNumber.unichar - это unsigned short, поэтому вы можете использовать:

[myNSMutableArray addObject:[NSNumber numberWithUnsignedShort:[myString characterAtIndex:0]]];
4 голосов
/ 07 июня 2010

Один из вариантов - добавить символ в ваш массив в виде строки:

unichar myChar = [myString characterAtIndex:0];
NSString * charString = [NSString stringWithFormat:@"%c", myChar];
[myNSMutableArray addObject:charString];

Обратите внимание, что это, вероятно, излишне.

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