0

iOS には、以下のように事前に宣言されたプロパティがあります。

@property(nonatomic, readonly) UIInterfaceOrientation interfaceOrientation;

@property(nonatomic) UIInterfaceOrientation interfaceOrientation;プロジェクト用に変更してからinterfaceOrientation、クラスの別のコントローラー メソッドの " " 変数に別の値を割り当てることはできますか?

既存のプロパティを変更すると問題が発生しますか?

また、グーグルで、 @property(nonatomic) が「readonly」キーワードで宣言されていない場合、デフォルトで読み書き可能であることをどこかで読みました。このルールは開発者によって定義されたプロパティにのみ適用され、事前定義されたプロパティには適用されませんか?

4

2 に答える 2

1

残念ながら、それは不可能です。Cocoa Touchはデザインパターン(この場合はOpen Close Principle、詳細についてはhttp://www.oodesign.com/open-close-principle.htmlを参照)に基づいて構築されているため、そのうちの1つに違反します。さらに機能/機能を追加することはできますが、既存のものを変更することはできません。お役に立てば幸い

于 2012-09-19T20:13:58.663 に答える
1

いいえ、読み取り専用の場合は理由があります。異なる動作を提供するにはUIViewController、指定されたメソッドをサブクラス化し、オーバーライドする必要があります[1] [2] :

- (NSUInteger)supportedInterfaceOrientations
- (UIInterfaceOrientation)preferredInterfaceOrientationForPresentation
于 2012-09-19T20:09:43.337 に答える