延迟后iOS设置属性

时间:2011-12-13 20:33:39

标签: objective-c ios cocoa-touch

有延迟后设置属性的方法吗?如:

// Compiler hates this
[self performSelector:@selector(imageView.image) withObject:[UIImage imageNamed:newImage] afterDelay:0.5];

或者我是否必须创建一个新方法来调用属性的设置?以上看起来很简单。

2 个答案:

答案 0 :(得分:6)

是,名为image的媒体资源的设置者的default名称为setImage

[imageView performSelector:@selector(setImage:) withObject:[UIImage imageNamed:newImage] afterDelay:0.5];

当你没有设置setter方法时,它将生成一个前缀为set的方法,然后使用驼峰方法,它将接受其类型的参数。

实施例。

@property(assign) id object;
//becomes
-(id)object {...} // getter
-(void)setObject:(id)inObject {...} //setter

答案 1 :(得分:5)

或者,使用dispatch_after。如果您键入dispatch_after并要求代码完成,您将获得三行样板代码以及将您的实际代码放在一个块中的位置。在该块中,imageView.image=是合法的。不要忘记将默认延迟时间从2秒更改(长时间延迟!)。