0

在我在网上找到的教程(例如http://bit.ly/SIXlI5)和 Apple 文档中,都没有提到发布 MKMapItem 或地标。他们需要被释放吗?如果不需要,为什么不呢?地图应用程序会处理所有这些吗?

NSDictionary *address = @{
  (NSString *)kABPersonAddressStreetKey: _address.text,
  (NSString *)kABPersonAddressCityKey: _city.text,
  (NSString *)kABPersonAddressStateKey: _state.text,
  (NSString *)kABPersonAddressZIPKey: _zip.text
};

MKPlacemark *place = [[MKPlacemark alloc] 
       initWithCoordinate:_coords 
       addressDictionary:address];

MKMapItem *mapItem = [[MKMapItem alloc]initWithPlacemark:place];

NSDictionary *options = @{
    MKLaunchOptionsDirectionsModeKey:MKLaunchOptionsDirectionsModeDriving
};

[mapItem openInMapsWithLaunchOptions:options];
4

1 回答 1

1

如果您不使用 ARC,并且分配了一个对象,则您有责任释放它。这里的所有都是它的。

在这种情况下,当您调用 openInMaps... 时,地图项信息将被编码到发送到地图应用程序的 URL 中。但你不必担心这一点。

您可以预期,除非在标头或文档中调用它,否则实例方法将同步完成其工作而不释放接收器。

于 2012-10-09T08:21:23.830 回答