NULL
またはnil
を補完ブロックanimateWithDuration:animations:completion:
に渡すと、iOSは私に叫んでいませんが、それは問題ないのですか?または、空の^{ }
を開く方が良いですか?ブロックパラメータにNULLを渡しても構いませんか?
答えて
これは、nil
を渡しているコードがブロックとして呼び出そうとしないと確信できる限り、問題ありません。
簡単なデモ:
typedef void (^GenericBlock)(void);
void useThisBlock(GenericBlock block){
block();
}
useThisBlock(^{NSLog(@"All okay.");});
useThisBlock(nil); // Compiles but crashes
内側のコードは最初のブロックを確認する必要があります。UIKitのコードの場合はif(block) block();
を、あなたは問題ないはずです。
nil
を渡すのは問題ありません。私の意見では、よりクリーンなコードを読み取ることができます。
完了ブロックを使用しない場合は、[UIView animateWithDuration:animations:]
メソッドを使用することもできます。
ありがとうございます、アニメーションブロックのないメソッドがあります。私の質問は、ブロックそのものに関するものです。だからなぜ 'NULL'ではなく' nil'ですか? – pixelfreak
'nil'と' NULL'は同等です。慣例により、Objective-Cは通常、 'NULL 'がCで使用されている' nil'を使用します。 – sho
これはARCでは正確ではありません。 'nil'はオブジェクトを意味し、' id'が期待されるところで使用されなければならず、 'NULL'は非オブジェクト非有効ポインタを意味し、'(void *) 'が期待される場所で使わなければなりません。詳細については、[this](http://stackoverflow.com/questions/557582/null-vs-nil-in-objective-c)の質問をご覧ください。 –
- 1. null比較のためにオブジェクトに構造体をキャストしてもボクシングが発生していませんか?
- 2. セッションIDをlocalStorageに保存しても構いませんか?
- 3. コントローラをモデルフォルダに配置しても構いませんか?
- 4. まだテーブルを使用しても構いませんか?
- 5. コンテナをReduxのコンポーネントに置いても構いませんか?
- 6. 自己キャンセル$タイムアウトを設定しても構いませんか?
- 7. ランダムなテクスチャIDを使用しても構いませんか?
- 8. 複数のDispatcher.BeginInvokeを作成しても構いませんか?
- 9. javamailセッションのトランスポートを開いたままにしても構いませんか?
- 10. Django TextFieldにhtmlコードを入れても構いませんか?
- 11. HTMLをHTML属性に入れても構いませんか?
- 12. ロジックをビューテンプレートに入れても構いませんか?
- 13. URLに大括弧を入れても構いませんか?
- 14. ドットの前にスペースを入れても構いませんか?
- 15. メソッドの引数としてObjectオブジェクトを渡してもかまいません。
- 16. 非常に長い.htaccessファイルを作成しても構いませんか?
- 17. まれな例外にチェックPIDを使用しても構いませんか?
- 18. 空のアンカータグを持っても構いませんか?
- 19. JMS:MessageListenerのonMessageのメッセージはnullでもかまいませんか?
- 20. Djangoフォームにリクエストを渡してもまだ定義されていません
- 21. サンドボックスファイルを別の指定プログラムに公開しても構いませんか?
- 22. 生産のためにpython mockを使用しても構いませんか?
- 23. データベースユーザテーブルにユーザ権限を保存しても構いませんか?
- 24. JavaScript getElementById短い構文が機能しています。それを使っても構いませんか?
- 25. 引数 'name'はnullでも空でも空白でもかまいません
- 26. MySQL LEFT JOIN - 値はNULLでもかまいません
- 27. Cleaned_dataは何も渡しません
- 28. htmlフォームに送信ボタンのみを置いても構いませんか?
- 29. Activityクラスの中にAsyncTaskクラスを置いても構いませんか?
- 30. Angular4親から子にデータを渡しても動作しません
"* UIKitコードの場合、上手くいくはずです。*"引用が必要ですか? – Manav
@Manav:あなたは間違ってはいません - 確認する方法はありません(ただし、クラッシュしないことを除いて)。 –