是否可以将NULL传递给块参数?
当我在animateWithDuration:animations:completion:
中将NULL
或nil
传递给完成块时,iOS不会尖叫我animateWithDuration:animations:completion:
但是这是否意味着没问题? 还是打开一个空的^{ }
更好?
这是可以的,只要你可以相信你传递给它的代码不会试图把它称为一个块。
快速示范:
typedef void (^GenericBlock)(void); void useThisBlock(GenericBlock block){ block(); } useThisBlock(^{NSLog(@"All okay.");}); useThisBlock(nil); // Compiles but crashes
内部代码必须首先检查块: if( block ) block();
在UIKit代码的情况下,你应该没问题。
通过nil
是好的,在我看来产生更清晰的阅读代码。
如果你不想使用完成块,对于这种情况你也可以使用[UIView animateWithDuration:animations:]
方法。