【发布时间】:2012-01-02 10:55:32
【问题描述】:
我成功地使用 AsiHttpRequest 库在我的应用程序中建立 url 连接。但是,我升级到 iOS5 并且 Reachability.m 文件在以下功能上报告了一些错误(4):
static void ReachabilityCallback(SCNetworkReachabilityRef target, SCNetworkReachabilityFlags flags, void* info) {
#pragma unused (target, flags)
NSCAssert(info, @"info was NULL in ReachabilityCallback");
NSCAssert([(NSObject*) info isKindOfClass: [Reachability class]], @"info was the wrong class in ReachabilityCallback");
// Post a notification to notify the client that the network reachability changed.
[[NSNotificationCenter defaultCenter] postNotificationName: kReachabilityChangedNotification object: (Reachability *) info];
} // ReachabilityCallback()
- (BOOL) startNotifier {
SCNetworkReachabilityContext context = {0, self, NULL, NULL, NULL};
if(SCNetworkReachabilitySetCallback(reachabilityRef, ReachabilityCallback, &context)) {
if(SCNetworkReachabilityScheduleWithRunLoop(reachabilityRef, CFRunLoopGetCurrent(), kCFRunLoopDefaultMode)) {
return YES;
}
}
return NO;
} // startNotifier
1sr 错误:在 NSCAssert 行中,“C 指针类型 'void' 到 Objective-C 指针类型 NSObject 的转换需要桥接转换”。为什么会发生以及如何解决?
回答:您可以为每个文件禁用 ARC。转到项目的构建设置并在所有 ASIHTTPRequest 文件上设置 -fno-objc-arc 标志(双击以编辑文本)。然后,您必须删除 ASIAuthenticationDialog 以及对它的任何仍然产生错误的引用。它对我有用。
【问题讨论】:
-
我的回答主要是帮助有类似问题的人。如果您投票-1,至少请解释原因。谢谢
标签: objective-c cocoa-touch ios5 asihttprequest