私はObjective Cの新機能ですが、とにかくuberプログラマではありませんが、奇妙な点は、オブジェクトが初期化されていないと宣言されたときにエラーをスローしないことです。目的Cは十分なエラーを投げていませんか?
私はinit
の機能に入れられるようにいくつかの設定をしましたが、このクラスはストーリーボードに組み込まれたUIViewController
です。だからinit
は決して呼び出されませんでした - それは私のエラーです - (多くのNSObject
プロジェクトの派生クラスと私は急いで、いくつかのことをテストするために投げただけです)。
しかし、int
に設定されているはずのインスタンスを呼び出すメソッドでエラーが発生しませんでした。これは、私が期待していた値がnilであったということだけです。
そんなものが黙って失敗するのは奇妙なことではありませんか?
自己宣伝の警告:私の新しい本http://shop.oreilly.com/product/0636920023562.doは、これらのことについてあなたに警告していたでしょう。私自身の経験から生まれた、本当の学習者に起こる嫌なことについての注意がいっぱいです。 – matt
私は 'init'を呼び出す際にエラーが発生したことを知っています - 私は間違ったことを除いて、私が作った間違いの性質を理解しています。私はコンパイラがさまざまなエラーについてあまりにも多くのことを言ってくれると思うので、私は、言語が私が考えることができるほとんどの状況で重大なエラーになるようなものを私に渡すとは期待していませんでした。 –
さて、あなたは知っています。 「なぜObjective-Cはメッセージを許可しないのですか?」というのはトップのFAQなので、Google検索を行う方が良いです。ここでは、ほとんどの高い点に当てはまるかなり良い議論があります:http:// stackoverflow。com/questions/156395/sending-a-message-to-nil – matt