gpt4 book ai didi

iphone - NSString的initWithData :encoding: return type issue

转载 作者:行者123 更新时间:2023-12-03 16:17:00 24 4
gpt4 key购买 nike

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

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 类型。

最佳答案

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

关于iphone - NSString的initWithData :encoding: return type issue,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/338598/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com