0

複数のスタイルを持つカスタムビュークラスを作成しています。つまり、一部のプロパティは初期化される場合とそうでない場合があります。毎回使用されるプロパティのみを合成するのが賢明ですか?

例えば:

含まれているプロパティは次のとおりです。

@property (nonatomic, assign) NSUInteger style;
@property (nonatomic, retain) UIImageView *imageView;
@property (nonatomic, retain) UILabel *descriptionLabel;
- (id)initWithStyle:(NSUInteger)style;

スタイルがStyleDefaultの場合、上記のすべてが初期化されて使用されます。スタイルがStyleMinimalの場合、imageViewのみが初期化されて使用されます。

imageViewのみを合成することは良いメモリ管理の習慣ですか?

4

3 に答える 3

2

合成プロパティの性質を誤解していると思います。

プロパティを宣言しても、そのプロパティのメモリは作成されません。自分で行います。合成は KVC の setter と getter をセットアップするだけで、最新バージョンの Xcode ではそれを行う必要さえありません。

したがって、あなたの質問では、使用される可能性があるプロパティを合成するかどうかに関係なく、アプリのメモリ使用量に違いはありません。

于 2013-03-12T16:06:53.747 に答える
1

最近のコンパイラバージョンでは、プロパティが自動的に合成されます。これらはすべてnil値で初期化する必要があるため、コードでこれらのプロパティにアクセスするときは、この点に注意してください。

于 2013-03-12T16:02:50.957 に答える
0

プロパティ (XCode4.3 コンパイラ以下) を作成した場合は、それを合成する必要があります。そうしないと、警告メッセージが表示されます。

また、XCode4.4+ コンパイラでは、明示的に合成する必要はありません。コンパイラが代わりに合成します。だからあなたはそこで何もすることができません

于 2013-03-12T16:04:24.257 に答える