From a1b27ad9a54ec26f7019b52994f9941ab23125ee Mon Sep 17 00:00:00 2001 From: XHY Date: Thu, 8 Jun 2023 16:34:18 +0800 Subject: [PATCH] update docs --- docs/plugin/uts-for-ios.md | 27 ++++++++++++++++++++++++--- 1 file changed, 24 insertions(+), 3 deletions(-) diff --git a/docs/plugin/uts-for-ios.md b/docs/plugin/uts-for-ios.md index 147cb8af6..ee545365f 100644 --- a/docs/plugin/uts-for-ios.md +++ b/docs/plugin/uts-for-ios.md @@ -365,9 +365,9 @@ var alert = new UIAlertController() ``` -#### 5.1.4 函数参数标签 +#### 5.1.4 函数参数 -在 swift 中方法参数存在标签时使用 `:` 连接在标签和参数值之间,在 uts 中需要使用 `=` 连接 +在 swift 中参数名称使用 `:` 连接参数值,在 uts 中需要使用 `=` 连接 示例 @@ -518,7 +518,7 @@ value["name"] = "uts" let map: Map = new Map() map.set("name","uts") ``` -#### 5.1.12 覆写方法存在参数标签的兼容问题 +#### 5.1.12 参数标签的兼容问题 > HBuilder X 3.6.11+ 版本支持 当覆写系统方法,或实现三方SDK的协议方法时,一些方法可能会存在参数标签的情况 @@ -546,6 +546,7 @@ func tencentLBSLocationManager(_ manager: TencentLBSLocationManager, didUpdate l uts 中需要用注解语法 @argumentLabel("didUpdate") 来表示参数标签 ```ts +// uts // 实现位置更新的 delegate 方法 tencentLBSLocationManager(manager: TencentLBSLocationManager, @argumentLabel("didUpdate") location: TencentLBSLocation) { let response = new LocationResponse(); @@ -561,6 +562,26 @@ tencentLBSLocationManager(manager: TencentLBSLocationManager, @argumentLabel("di `~/uni_modules/uts-tencentgeolocation/utssdk/app-ios/index.uts` +#### 5.1.12.1 无参数标签 + +只写参数名称的参数,编译后会在参数前默认增加 `_` 来忽略参数标签(如上面的示例,第一个参数 manager,这种方式能兼容绝大多数方法,尤其是Swift 调用 OC 方法),但是有些参数没有参数标签,默认添加 `_` 的行为会和原生方法定义不一致,这种情况需要定义一个空的参数标签来解决 `@argumentLabel("didUpdate")` ,示例 + +高德定位 SDK 的代理方法,第三个参数 reGeocode 只有参数名称,没有参数标签 + +```swift +// swift +func amapLocationManager(_ manager: AMapLocationManager!, didUpdate location: CLLocation!, reGeocode: AMapLocationReGeocode!) +``` + +uts 实现此方法时,需要给 reGeocode 参数添加一个空的参数标签 + +```ts +// uts +amapLocationManager(manager : AMapLocationManager, @argumentLabel("didUpdate") location : CLLocation, @argumentLabel("") reGeocode : AMapLocationReGeocode) { + +} +``` + #### 5.1.13 异步方法 swift 标记某个函数或者方法是异步的,你可以在它的声明中的参数列表后边加上 `async` 关键字 -- GitLab