私は iOS プログラミングが初めてで、developer.apple.com での鳥の観察に関する Your Second iOS App と呼ばれる 2 番目のチュートリアルに行き詰まっています。コードを実行すると、「詳細シーンに情報を表示する」セクションの最後で、BirdSightingDataController.m ファイルで「'birdsighting' の目に見える @interface がセレクター 'initwithname:location:date:' を宣言しません」というエラーが表示されます。 "sighting = [[BirdSighting alloc] initWithName:@"Pigeon" location:@"Everywhere" date:today];" ライン。私はドキュメントを何度もチェックし、もう一度 tut を実行しましたが、これを修正する方法が見つかりませんでした。
#import "BirdSightingDataController.h"
#import "BirdSighting.h"
@interface BirdSightingDataController ()
- (void)initializeDefaultDataList;
@end
@implementation BirdSightingDataController
- (void)initializeDefaultDataList {
NSMutableArray *sightingList = [[NSMutableArray alloc] init];
self.masterBirdSightingList = sightingList;
BirdSighting *sighting;
NSDate *today = [NSDate date];
sighting = [[BirdSighting alloc] initWithName:@"Pigeon" location:@"Everywhere" date:today];
[self addBirdSightingWithSighting:sighting];
}
- (void)setMasterBirdSightingList:(NSMutableArray *)newList {
if (_masterBirdSightingList != newList) {
_masterBirdSightingList = [newList mutableCopy];
}
}
- (id)init {
if (self = [super init]) {
[self initializeDefaultDataList];
return self;
}
return nil;
}
- (NSUInteger)countOfList {
return [self.masterBirdSightingList count];
}
- (BirdSighting *)objectInListAtIndex:(NSUInteger)theIndex {
return [self.masterBirdSightingList objectAtIndex:theIndex];
}
- (void)addBirdSightingWithSighting:(BirdSighting *)sighting {
[self.masterBirdSightingList addObject:sighting];
}
@end
Birdsighting.h ファイル
#import <Foundation/Foundation.h>
@interface BirdSighting : NSObject
@property (nonatomic, copy) NSString *name;
@property (nonatomic, copy) NSString *location;
@property (nonatomic, strong) NSDate *date;
-(id)initWithName:(NSString *) name locaiton:(NSString *)location date:(NSDate *) date;
@end