iphone降雪效果

时间:2011-12-14 09:54:34

标签: iphone ipad

我一直关注着 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'

请建议,我该如何解决这个问题。

此致

enter image description here

1 个答案:

答案 0 :(得分:4)

扩展@fluchtpunkt的评论应该是一个答案;)

ARC的工作原理是在编译时确定是否需要这些对象 - 然后它会为您设置保留/释放。

如果将对象作为(void *)传递,则编译器无法确定是否必须保留此对象,以便在使用它之前将其释放。

__bridge明确告诉编译器您正在传递“真实”对象,但使用void *来执行此操作。

但是,如果您没有告诉编译器其他地方您已完成对象,则可能存在内存泄漏的风险:)

查看http://developer.apple.com/library/ios/#releasenotes/ObjectiveC/RN-TransitioningToARC/index.html 并搜索“ _bridge”以查看更多详情。