私はAppleのチュートリアルの1つ(2番目のiOSアプリ)を試していました。基本的に、プライマリデータクラスとデータコントローラークラスがあります。コントローラクラスは、プライマリデータオブジェクトを保持する配列を作成することにより、それらを操作します。
突然これがポップアップします:
「...しかし、「マスターコレクションの作成」タスクは、データコントローラーオブジェクトのみが知る必要があるタスクです。このメソッドは他のオブジェクトに公開する必要がないため、ヘッダーで宣言する必要はありません。ファイル。"
そして、「マスターコレクション」の初期化は、ヘッダーファイルではなくクラス拡張子として.mファイルに表示されることがわかりました。なぜこれをしたいのですか?ヘッダーファイル内で初期化のメソッドを直接宣言することの何が問題になっていますか?
データコントローラーのヘッダーファイル:
#import <Foundation/Foundation.h>
@class BirdSighting;
@interface BirdsSightingDataController : NSObject
@property (nonatomic, copy) NSMutableArray *masterBirdSightingList;
- (NSUInteger)countOfList;
- (BirdSighting *)objectInListAtIndex:(NSUInteger)theIndex;
- (void)addBirdSightingWithName:(NSString *)inputBirdName location:(NSString *)inputLocation;
@end
これは対応する.mファイルです。
#import "BirdsSightingDataController.h"
#import "BirdSighting.h"
@interface BirdsSightingDataController ()
- (void)initializeDefaultDataList; //class extension
@end
@implementation BirdsSightingDataController
...