iPhone地图视图自定义注释
我有一些地图视图控制器和一个自定义注释 自定义注释代码:iPhone地图视图自定义注释,iphone,objective-c,mkmapview,android-mapview,mkannotation,Iphone,Objective C,Mkmapview,Android Mapview,Mkannotation,我有一些地图视图控制器和一个自定义注释 自定义注释代码: #import <Foundation/Foundation.h> #import <MapKit/MKAnnotation.h> @interface DisplayMapAnnotation : NSObject <MKAnnotation> { CLLocationCoordinate2D coordinate; NSString *title; NSString
#import <Foundation/Foundation.h>
#import <MapKit/MKAnnotation.h>
@interface DisplayMapAnnotation : NSObject <MKAnnotation> {
CLLocationCoordinate2D coordinate;
NSString *title;
NSString *subtitle;
NSString *detailID;
}
@property (nonatomic, assign) CLLocationCoordinate2D coordinate;
@property (nonatomic, retain) NSString *title;
@property (nonatomic, retain) NSString *subtitle;
@property (nonatomic, retain) NSString *detailID;
@end
#import "DisplayMapAnnotation.h"
@implementation DisplayMapAnnotation
@synthesize coordinate, title, subtitle, detailID;
- (NSString *) title
{
return title;
}
- (NSString *) subtitle
{
return subtitle;
}
- (NSString *) detailID
{
return detailID;
}
- (id)initWithCoordinate:(CLLocationCoordinate2D) c
{
coordinate=c;
return self;
}
- (void) dealloc
{
[title release];
[subtitle release];
[detailID release];
[super dealloc];
}
当我记录详细信息id时,Xcode说:“在类型为“id”的对象上找不到属性“detailID”。怎么了?它不知道注释是您的自定义注释:
NSLog(@"Detail id: %@", view.annotation.detailID);
你可以这样投,让警告安静下来
NSLog(@"Detail id: %@", [(DisplayMapAnnotation*)view.annotation detailID]);
检查是否为DisplayMapAnnotation后*
if ([view.annotation isKindOfClass:[DisplayMapAnnotation class]])
我能有一些不同的问题吗?有时我会有一些注释。这是很好的工作,但有时我有很多注释,然后我收到内存警告,我的应用程序崩溃。有什么解决办法吗?tanks…您应该提出一个新问题,并详细说明注释的数量、如何实现dealloc方法以及在收到mem警告时所做的工作。@Alexander Farber感谢您为提高问题质量所做的努力。但请注意,这里的许多人认为,去掉问候语或“谢谢”是一个太小的改变。尽量使你的编辑内容充实。
NSLog(@"Detail id: %@", [(DisplayMapAnnotation*)view.annotation detailID]);
if ([view.annotation isKindOfClass:[DisplayMapAnnotation class]])