小编sto*_*yhk的帖子

即使我们确实有互联网连接,可达性有时也会失败

我搜索过但看不到类似的问题.

我已经添加了一种方法来检查每个Reachability示例的互联网连接.它大部分时间都可以工作,但是当安装在iPhone上时,即使我有互联网连接也经常会失败(只有在3G/EDGE上才能使用 - WiFi可以).

基本上下面的代码返回NO.

如果我切换到另一个应用程序,例如Mail或Safari,然后连接,然后切换回应用程序,然后代码显示可以访问互联网.有点似乎需要'轻推'.

有人见过这个吗?有任何想法吗?

非常感谢詹姆斯

+ (BOOL) doWeHaveInternetConnection{

BOOL success;
// google should always be up right?!
const char *host_name = [@"google.com" cStringUsingEncoding:NSASCIIStringEncoding];

SCNetworkReachabilityRef reachability = SCNetworkReachabilityCreateWithName(NULL,
                                                                            host_name);
SCNetworkReachabilityFlags flags;
success = SCNetworkReachabilityGetFlags(reachability, &flags);
BOOL isAvailable = success && (flags & kSCNetworkFlagsReachable) && !(flags & kSCNetworkFlagsConnectionRequired);

if (isAvailable) {
    NSLog(@"Google is reachable: %d", flags);
}else{
    NSLog(@"Google is unreachable");
}

return isAvailable;
Run Code Online (Sandbox Code Playgroud)

}

iphone objective-c

8
推荐指数
1
解决办法
7040
查看次数

NSXMLParserDelegate编译问题 - iPhone SDK 30. vs 4.0

我的头文件定义如下:

#import <Foundation/Foundation.h>

@interface Warning: NSObject  { 
Run Code Online (Sandbox Code Playgroud)

在我的.m文件中,我做:

NSXMLParser *parser = [[NSXMLParser alloc] initWithContentsOfURL:url];
[parser setDelegate:self];
Run Code Online (Sandbox Code Playgroud)

这编译并在3.0下正常工作.

如果我尝试使用4.0编译,我会收到此错误:

没有实现'NSXMLParserDelegate'协议

如果我添加:

@interface Warning: NSObject <NSXMLParserDelegate>  { 
Run Code Online (Sandbox Code Playgroud)

它用4.0编译好,但是当我尝试用3.0编译时,我得到:

错误:找不到'NSXMLParserDelegate'的协议声明

基础框架正确找到.添加NSXMLParser.h没有帮助.

任何帮助,将不胜感激.

谢谢

iphone

6
推荐指数
1
解决办法
6446
查看次数

标签 统计

iphone ×2

objective-c ×1