我有代码可以检测到,当用户没有运行良好的internet时,每次它在Debug区域触发一条消息时,都会出现这样的情况:
检测到不正确的NSStringEncoding值0x0000。假设是NSASCIIStringEncoding。将在不久的将来停止此兼容性映射。
我该怎么处理掉这条信息?
下面是我使用的代码:
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
}如能提供任何帮助,将不胜感激。
发布于 2013-10-23 14:09:37
在这一行中调用的方法:
NSString *connect = [NSString stringWithContentsOfURL:[NSURL URLWithString:@"http://google.co.uk"] encoding:NO error:nil];期望字符串的编码方法,而不是BOOL。
试试这个:
NSString *connect = [NSString stringWithContentsOfURL:[NSURL URLWithString:@"http://google.co.uk"] encoding:NSUTF8StringEncoding error:nil];发布于 2013-10-23 14:09:45
您正在传递NO(数据类型BOOL)作为编码参数,该参数的类型为NSStringEncoding。
方法签名是,
+ (instancetype)stringWithContentsOfURL:(NSURL *)url usedEncoding:(NSStringEncoding *)enc error:(NSError **)error编码应该是其中之一,
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
};例如:
NSError *error = nil;
NSString *connect = [NSString stringWithContentsOfURL:[NSURL URLWithString:@"http://google.co.uk"]
encoding:NSUTF8StringEncoding
error:&error];
if(error!=nil) {
//Some error occured
}https://stackoverflow.com/questions/19543944
复制相似问题