私はNSMutableArray
を返してくれました。 追加したオブジェクトにはプロパティ名、年齢があります。NSObjectポインタのプロパティを呼び出すとビルドエラーが発生するのはなぜですか?
今、私は、オブジェクトの上にこれらのプロパティを使用するときには、このようなメンバー、 コンパイラは言う、(obj.name
またはobj.age
)返されない、使用(->
)の代わりに、(.
)
私はNSObjectのは、文句を言わないこれらのメンバーを持っていることを理解し、したがって、それはプロパティを理解していない。
しかし、私はこのプロパティの代わりにメソッド([obj name]
または[obj age]
)の構文でセッターとゲッターを使用すると、エラーは表示されません。
しかし、プロパティを使用するとは、セッターまたはゲッタだけを呼び出すことを意味しますか?
広告Objective Cは動的言語であると思われます。
これは問題ありません。ドット構文はsetterメソッドまたはgetterメソッドの呼び出しを表すと仮定しています。それが存在するかどうかにかかわらず、メソッド呼び出しとしては機能しませんか?とにかく ..清算のためにありがとう:) –
プロパティは、読み取り専用になっている場合はどうなりますか?コンパイラがあなたが話しているクラス/プロパティを正確に知っていない限り、(少なくとも値を設定したい場合は)それを使用する必要があるかどうかを知ることはできません。 – UIAdam
@UIAdam:プロパティが読み込み専用であれば、setterは生成されず、実行時に "例外に送信されたセレクタを認識できません"というメッセージが表示されます。 –