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. 複数のDispatcher.BeginInvokeを作成しても構いませんか?
- 6. ランダムなテクスチャIDを使用しても構いませんか?
- 7. javamailセッションのトランスポートを開いたままにしても構いませんか?
- 8. URLに大括弧を入れても構いませんか?
- 9. ロジックをビューテンプレートに入れても構いませんか?
- 10. ドットの前にスペースを入れても構いませんか?
- 11. HTMLをHTML属性に入れても構いませんか?
- 12. メソッドの引数としてObjectオブジェクトを渡してもかまいません。
- 13. 非常に長い.htaccessファイルを作成しても構いませんか?
- 14. 空のアンカータグを持っても構いませんか?
- 15. サンドボックスファイルを別の指定プログラムに公開しても構いませんか?
- 16. MySQL LEFT JOIN - 値はNULLでもかまいません
- 17. htmlフォームに送信ボタンのみを置いても構いませんか?
- 18. WebWorksのUI構造:HTML形式でも、別ファイルでも構いませんか?
- 19. Entity FrameworkのCreateOrUpdateメソッドでtry-catchを使用しても構いませんか?
- 20. nodejs 4.xでnpm 3.xを使用しても構いませんか?
- 21. ObjectでJavascriptのプロトタイプ関数を定義しても構いませんか?
- 22. C++ストリームで三項演算子を使用しても構いませんか?
- 23. CodeIgniterビューに条件付きロジックを入れても構いませんか?
- 24. Linuxカーネル:ストリーミングDMAマッピングを無期限に開いたままにしても構いませんか?
- 25. データベースにNULL値を渡すことができません
- 26. 日付にNull値を渡すことができません
- 27. リリースされたオブジェクトを再度割り当てても構いませんか?
- 28. Cの構造体ポインタにNULLをキャストしていますか?
- 29. フィールドをphpmyadminでNULLに設定していません
- 30. @login_requiredを渡しても一部のページにユーザーオブジェクトが存在しません
"* UIKitコードの場合、上手くいくはずです。*"引用が必要ですか? – Manav
@Manav:あなたは間違ってはいません - 確認する方法はありません(ただし、クラッシュしないことを除いて)。 –