【发布时间】:2013-09-03 19:15:14
【问题描述】:
该方法最多接受两个回调,animations 和 complete。如果我在类方法中定义了需要做什么,如何将它们传递给animateWithDuration?
签名看起来像
+ (void)animateWithDuration:(NSTimeInterval)duration animations:(void (^)(void))animations
通常看起来像:
[UIView animateWithDuration:0.2f
delay:0.0f
options:UIViewAnimationOptionCurveEaseIn
animations:^{
_someView.frame = CGRectMake(-150, -200, 460, 650);
_someView.alpha = 0.0;
}
completion:^(BOOL finished) {
}];
所以我正在寻找的是将animations 分配给我班级中的某个方法。
这个方法被选为一个众所周知的例子。然而,根本原因是我有自己的类尝试执行相同的方法,我想知道是否可以通过不在回调中调用类方法来保持代码更简洁。
我不喜欢的最大的事情是NSError ** 参数我用于我的回调,以防出错。子调用将需要某种全局变量,我真的不喜欢那样。所以这是我的完整性签名:
- (void)registerWithEmail:(NSString *)email
name:(NSString *)name
willRegister:(void (^)(void))willRegister
didRegister:(void (^)(void))didRegister
registerError:(void (^)(NSError**))registerError;
【问题讨论】:
-
附带说明,当您使用这样的错误参数时,您应该有一个 BOOL 返回类型。该方法的调用者检查成功/失败的返回值,以决定他们是否应该读取 registerError 变量。请参阅 NSError 编程指南...现在我认为可能是编译器警告...
标签: ios objective-c callback uiviewanimation