当我尝试使用ip地址而不是主机名来告诉模拟器中的ios应用程序与本地服务器通信时,应用程序挂起在加载屏幕上,等待来自服务器的响应从未到来.
我是Objective C的新手,但代码是使用处理请求的AFNetowrking框架,并且对AFHTTPClient对象上的ip地址设置了不同的SCNetworkReachabilityFlags属性.
在调试期间捕获了AFHTTPClient对象的ip地址和主机名的以下属性.
<SCNetworkReachability 0xd26d8a0 [0x53b9ec8]>
{address = 127.0.0.1, flags = 0x00010002, if_index = 1}
<SCNetworkReachability 0xcf283f0 [0x53b9ec8]>
{name = localhost (server query active), flags = 0x80000000, if_index = 0}
Run Code Online (Sandbox Code Playgroud)
在AFHTTPClient.m类的startMonitoringNetworkReachability方法中,有以下if语句为ip地址触发但我不知道是否是问题:
/* Network reachability monitoring does not establish a baseline for IP addresses as
it does for hostnames, so if the base URL host is an IP address, the initial
reachability callback is manually triggered.
*/
if (AFURLHostIsIPAddress(self.baseURL)) {
SCNetworkReachabilityFlags flags;
SCNetworkReachabilityGetFlags(self.networkReachability, &flags);
dispatch_async(dispatch_get_main_queue(), ^{
AFNetworkReachabilityStatus status = AFNetworkReachabilityStatusForFlags(flags); …Run Code Online (Sandbox Code Playgroud)