我一直关注着 apps 降雪教程,但我在iOS 5中遇到了一些问题,比如this http://appsamuck.com/images/day9_ScreenShot.jpg
-
(void)onAnimationComplete:(NSString *)animationID finished:(NSNumber *)finished context:(void *)context {
UIImageView *flakeView = context;
****这就是问题所在:使用ARC时不允许将非目标c指针类型'void *'隐式转换为'UIimageview'
请建议,我该如何解决这个问题。
此致
答案 0 :(得分:4)
ARC的工作原理是在编译时确定是否需要这些对象 - 然后它会为您设置保留/释放。
如果将对象作为(void *)
传递,则编译器无法确定是否必须保留此对象,以便在使用它之前将其释放。
__bridge
明确告诉编译器您正在传递“真实”对象,但使用void *
来执行此操作。
但是,如果您没有告诉编译器其他地方您已完成对象,则可能存在内存泄漏的风险:)
查看http://developer.apple.com/library/ios/#releasenotes/ObjectiveC/RN-TransitioningToARC/index.html 并搜索“ _bridge”以查看更多详情。