首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Xcode 5-检查用户是否有互联网连接-检测到不正确的NSStringEncoding值0x0000

Xcode 5-检查用户是否有互联网连接-检测到不正确的NSStringEncoding值0x0000
EN

Stack Overflow用户
提问于 2013-10-23 14:04:52
回答 2查看 5.3K关注 0票数 1

我有代码可以检测到,当用户没有运行良好的internet时,每次它在Debug区域触发一条消息时,都会出现这样的情况:

检测到不正确的NSStringEncoding值0x0000。假设是NSASCIIStringEncoding。将在不久的将来停止此兼容性映射。

我该怎么处理掉这条信息?

下面是我使用的代码:

代码语言:javascript
复制
NSString *connect = [NSString stringWithContentsOfURL:[NSURL URLWithString:@"http://google.co.uk"] encoding:NO error:nil];

if (connect == NULL) { 
//When there isn't internet
}
else {
//When there is
}

如能提供任何帮助,将不胜感激。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-10-23 14:09:37

在这一行中调用的方法:

代码语言:javascript
复制
NSString *connect = [NSString stringWithContentsOfURL:[NSURL URLWithString:@"http://google.co.uk"] encoding:NO error:nil];

期望字符串的编码方法,而不是BOOL。

试试这个:

代码语言:javascript
复制
   NSString *connect = [NSString stringWithContentsOfURL:[NSURL URLWithString:@"http://google.co.uk"] encoding:NSUTF8StringEncoding error:nil];
票数 3
EN

Stack Overflow用户

发布于 2013-10-23 14:09:45

您正在传递NO(数据类型BOOL)作为编码参数,该参数的类型为NSStringEncoding

方法签名是,

代码语言:javascript
复制
+ (instancetype)stringWithContentsOfURL:(NSURL *)url usedEncoding:(NSStringEncoding *)enc error:(NSError **)error

编码应该是其中之一,

代码语言:javascript
复制
enum {
   NSASCIIStringEncoding = 1,
   NSNEXTSTEPStringEncoding = 2,
   NSJapaneseEUCStringEncoding = 3,
   NSUTF8StringEncoding = 4,
   NSISOLatin1StringEncoding = 5,
   NSSymbolStringEncoding = 6,
   NSNonLossyASCIIStringEncoding = 7,
   NSShiftJISStringEncoding = 8,
   NSISOLatin2StringEncoding = 9,
   NSUnicodeStringEncoding = 10,
   NSWindowsCP1251StringEncoding = 11,
   NSWindowsCP1252StringEncoding = 12,
   NSWindowsCP1253StringEncoding = 13,
   NSWindowsCP1254StringEncoding = 14,
   NSWindowsCP1250StringEncoding = 15,
   NSISO2022JPStringEncoding = 21,
   NSMacOSRomanStringEncoding = 30,
   NSUTF16StringEncoding = NSUnicodeStringEncoding,
   NSUTF16BigEndianStringEncoding = 0x90000100,
   NSUTF16LittleEndianStringEncoding = 0x94000100,
   NSUTF32StringEncoding = 0x8c000100,
   NSUTF32BigEndianStringEncoding = 0x98000100,
   NSUTF32LittleEndianStringEncoding = 0x9c000100,
   NSProprietaryStringEncoding = 65536
};

例如:

代码语言:javascript
复制
NSError *error = nil;
NSString *connect = [NSString stringWithContentsOfURL:[NSURL URLWithString:@"http://google.co.uk"] 
                              encoding:NSUTF8StringEncoding
                              error:&error];
if(error!=nil) {
    //Some error occured
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19543944

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档