사용 MKAnnotation
, 내가 그래서 난 AdoptingAnAnnotation
라는 이름의 클래스를 만들지도보기에 주석을 추가 할 때 몇 가지 문제가, 를 사용하는 방법 .h
파일은 다음과 # import를 # import를MKAnnotation
@interface AdoptingAnAnnotation: NSObject {
}
@synthesize latitude;
@synthesize longitude;
@property (nonatomic, readonly) CLLocationCoordinate2D coordinate;
- (NSString *) title;
- (NSString *) subtitle;
@end
와하는 .m 파일
#import "AdoptingAnAnnotation.h"
@implementation AdoptingAnAnnotation
@synthesize latitude;
@synthesize longitude;
- (id) initWithLatitude:(CLLocationDegrees) lat longitude:(CLLocationDegrees) lng {
latitude = lat;
longitude = lng;
return self;
}
- (CLLocationCoordinate2D) coordinate {
CLLocationCoordinate2D coord = {self.latitude, self.longitude};
return coord;
}
- (NSString *) title {
return @"217 2nd St";
}
- (NSString *) subtitle {
return @"San Francisco CA 94105";
}
@end
이 illegal interface qualifier
같은 오류 메시지가 따라입니다내 구문 오류 또는 MKAnnotation
에 대한 다른 오류가 있습니까?
하지만 .h 파일에서 @synthesize를 제거하면 http://commondatastorage.googleapis.com/haibo/temp/Screen%20Shot%202012-02-25%20at%202.08과 같은 다른 오류 메시지가 표시됩니다. 54 % 20 PM.png 이것은 어떤 것을 선언해야 함을 의미합니다. – timger
'lattitude'와'longitude'를 @synthesize로 만들려면 @interface에있는 것들에 대해 @property 선언이 필요합니다. 마찬가지로,'coordinate'에 대한 @property 선언을 가지고 있기 때문에, 당신은 또한 그 속성을 위해 @synthesize 지시자를 가져야 만합니다, 그렇지 않으면 접근자를 직접 제공해야합니다. – Caleb