【发布时间】:2017-07-30 16:30:58
【问题描述】:
我对此功能有疑问:
- (instancetype)initWithCenter:(CLLocationCoordinate2D)center
radius:(CLLocationDistance)radius
identifier:(NSString *)identifier;
在 pascal 中,identifier:(NSString *)identifier 是否必须转换为 Pointer 或 NSString ?
在delphi源码中,这个函数是这样转换的:
function initWithCenter(center: CLLocationCoordinate2D; radius: CLLocationDistance; identifier: NSSTRING): Pointer; cdecl;
但是当我使用它时,我在 ios 10 下有一个 AV(但它在 ios 9 上工作) :(
如果我用 Pointer 替换 NSString,那么它可以在 IOS 10 上运行,但我不明白为什么......
注意:这很奇怪,因为在 delphi 中,每个 (NSString *) 都被翻译为 NSString,除了 CLRegion.initCircularRegionWithCenter(在 ios10/64 位下)之外它工作正常,我真的很想知道为什么. https://quality.embarcadero.com/browse/RSP-15717 和 http://delphiworlds.com/2016/07/region-monitoring-background-ios/
【问题讨论】:
-
我没有 iOS 9 设备,但它不适用于我的 iOS 9(64 位),这就是我必须更改它的原因。也很确定它是 iOS 9.3,因为我在 2016 年 7 月遇到了问题,而 9.3 于 2016 年 3 月发布
-
嗯所以也许它连接到编译器?我在 32 位以下,而不是 64 位
-
是的,它已连接到编译器(64 位),请参阅 horacio 的答案
标签: ios objective-c delphi nsstring firemonkey