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]])