当前位置:  开发笔记 > 编程语言 > 正文

NSString的initWithData:encoding:返回类型问题

如何解决《NSString的initWithData:encoding:返回类型问题》经验,为你挑选了1个好方法。

我有几行简单的代码,如下所示:

NSData *dataReply;
NSString *stringReply;
dataReply = [NSURLConnection sendSynchronousRequest:request returningResponse:&response error:&error];
stringReply = [[NSString alloc] initWithData:dataReply encoding:NSUTF8StringEncoding];

这里的问题是,initWithData:encoding:不会像文档声称的那样返回NSString的实例.我尝试使用(NSString*)进行显式转换,但没有太多运气.当我尝试将stringReply传递给我用类型不匹配编写的方法时,这给了我编译器警告.鉴于我将所有警告都视为错误,我真的很想了解返回的是什么是stringReply以及如何将其强制为NSString类型.



1> Matt Gallagh..:

当您尝试在另一个位置使用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)但从未随后包含在实现文件中,则通常会发生第二个选项.

推荐阅读
linjiabin43
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有