Xcode 5 - 检查用户是否具有 Internet 连接 - 检测到错误的 NSStringEncoding 值 0x0000

声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow 原文地址: http://stackoverflow.com/questions/19543944/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me): StackOverFlow

提示:将鼠标放在中文语句上可以显示对应的英文。显示中英文
时间:2020-09-15 04:10:23  来源:igfitidea点击:

Xcode 5 - Check User Has Internet Connection - Incorrect NSStringEncoding Value 0x0000 detected

iosiphoneobjective-cxcode

提问by DocAsh59

I have code to be able to detect when the user doesn't have internet that works perfectly BUT every time its triggered a message in the Debug Area appears saying:

我有代码能够检测用户何时没有完美运行的互联网,但每次在调试区域触发一条消息时都会显示:

Incorrect NSStringEncoding Value 0x0000 detected. Assuming NSASCIIStringEncoding. Will stop this compatibility mapping in the near future.

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

How do I get rid of this message?

我如何摆脱这个消息?

Here is the code I'm using:

这是我正在使用的代码:

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
}

Any help would be appreciated

任何帮助,将不胜感激

回答by Antonio MG

The method called in this line:

在这一行中调用的方法:

NSString *connect = [NSString stringWithContentsOfURL:[NSURL URLWithString:@"http://google.co.uk"] encoding:NO error:nil];

Expect a encoding method for the string, not a BOOL.

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

Try this:

尝试这个:

   NSString *connect = [NSString stringWithContentsOfURL:[NSURL URLWithString:@"http://google.co.uk"] encoding:NSUTF8StringEncoding error:nil];

回答by Amar

You are passing NO(data type BOOL) as encoding parameter which is of type NSStringEncoding.

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

The method signature is,

方法签名是,

+ (instancetype)stringWithContentsOfURL:(NSURL *)url usedEncoding:(NSStringEncoding *)enc error:(NSError **)error

Encoding should be one of these,

编码应该是其中之一,

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
};

Ex:

前任:

NSError *error = nil;
NSString *connect = [NSString stringWithContentsOfURL:[NSURL URLWithString:@"http://google.co.uk"] 
                              encoding:NSUTF8StringEncoding
                              error:&error];
if(error!=nil) {
    //Some error occured
}