id *
нельзя привести к NSString *
ни при каких обстоятельствах.
Имейте в виду, что id
уже является типом указателя; делая его эквивалентным не NSString
, а NSString *
.
Чтобы разыграть, вам нужно разыграть его на NSString **
.
Изменить:
В случае, если вы представляете, приведение совершенно не нужно.
NSString *string2Star = *idStar;
должен делать хорошо; и даже в этом нет необходимости.
Имейте в виду, что тип переменной в Objective-C по сути является всего лишь подсказкой компилятору, чтобы он знал, какие методы вы планируете вызывать; и предупредит вас, если вы позвоните другим.
Фактическое отображение вызова метода все происходит во время выполнения; Это означает, что приведение довольно бессмысленно.