延迟后iOS设置属性

Nic*_*ard 1 cocoa-touch objective-c ios

有延迟后设置房产的方法吗?如:

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

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

Joe*_*Joe 6

是的,名为的属性的setter 的默认名称imagesetImage.

[imageView performSelector:@selector(setImage:) withObject:[UIImage imageNamed:newImage] afterDelay:0.5];
Run Code Online (Sandbox Code Playgroud)

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

防爆.

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


mat*_*att 5

或者,使用dispatch_after.如果您键入dispatch_after并要求代码完成,你会得到三条线的样板代码,并把一个地方实际代码块中.在那个街区,imageView.image=是合法的.不要忘记将默认延迟时间从2秒更改(长时间延迟!).