iOS アプリと Objective C の作業を開始して以来、変数を宣言および定義できるさまざまな場所に本当に困惑してきました。一方では従来の C アプローチを採用し、他方ではその上に OO を追加する新しい ObjectiveC ディレクティブを採用しています。これらの場所を変数に使用し、おそらく現在の理解を修正したいベストプラクティスと状況を理解するのを手伝ってくれませんか?
サンプル クラス (.h および .m) を次に示します。
#import <Foundation/Foundation.h>
// 1) What do I declare here?
@interface SampleClass : NSObject
{
// 2) ivar declarations
// Pretty much never used?
}
// 3) class-specific method / property declarations
@end
と
#import "SampleClass.h"
// 4) what goes here?
@interface SampleClass()
// 5) private interface, can define private methods and properties here
@end
@implementation SampleClass
{
// 6) define ivars
}
// 7) define methods and synthesize properties from both public and private
// interfaces
@end
- 1 と 4 についての私の理解では、これらは C スタイルのファイルベースの宣言と定義であり、クラスの概念をまったく理解していないため、C で使用される方法とまったく同じように使用する必要があります。以前は静的変数ベースのシングルトンを実装するために使用されていました。私が見逃している他の便利な用途はありますか?
- iOS での作業からの私の見解は、@synthesize ディレクティブの外では ivar がほぼ完全に段階的に廃止されたため、ほとんど無視できるということです。そうですか?
- 5 について: プライベート インターフェイスでメソッドを宣言する必要があるのはなぜですか? 私のプライベート クラス メソッドは、インターフェイスで宣言しなくても問題なくコンパイルできるようです。主に読みやすさのためですか?
たくさんありがとう、皆さん!