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
Xcode 5 - Check User Has Internet Connection - Incorrect NSStringEncoding Value 0x0000 detected
提问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
}