«Несоответствие типов» от компилятора, когда вы пытаетесь использовать stringReply в другом месте, не имеет ничего общего с объектом, возвращаемым из initWithData: encoding: и всем, что связано с тем, где впоследствии используется stringReply.
Например, если вы получаете несоответствие типов при этом:
SomeClass *someObject;
NSString *stringReply;
stringReply = [[NSString alloc] initWithData:dataReply encoding:NSUTF8StringEncoding];
[someObject methodWithString:stringReply];
Проблема в не , что initWithData: encoding: возвращает неправильный тип, но один из:
- methodWithString: фактически не принимает NSString *
- methodWithString: неправильно объявлен / включен перед использованием
Второй вариант часто может возникнуть, если SomeClass заранее объявлен в заголовочном файле (как @class SomeClass), но никогда впоследствии не включен в файл реализации.