Неявное преобразование типа указателя не-Objective-C 'char *' в 'NSString *' запрещено с помощью ARC.

Для следующей строки кода я получаю следующую ошибку:

for (UILabel *label in labels) {
    label.text = label.tag - 100 > someMutableString.length ? "" : "*";
}

Ошибка гласит:

Неявное преобразование типа указателя не-Objective-C 'char *' в 'NSString *' запрещено с помощью ARC.

Моя переменная «someMutableString» имеет тип NSMutableString.

Как исправить в моем конкретном случае?


person motionpotion    schedule 23.10.2014    source источник


Ответы (2)


Проблема в том, что вашими строковыми литералами являются "" и "*", которые являются строками в стиле C (const char*). Таким образом, тип правой части присваивания также const char*. Вы присваиваете text свойству UILabel, которое принимает NSString.

Вместо этого используйте @"" и @"*".

person Ken Thomases    schedule 23.10.2014
comment
это было все. Надеюсь, это поможет кому-то еще, так как при поиске я не нашел такого типа примера, связанного с этой ошибкой. - person motionpotion; 23.10.2014

char *text = "a"

NSString *message = [NSString stringWithFormat:@"%s",text];

Ура :)

person Haseeb Javed    schedule 08.03.2021