在 nativescript (with typescript) 项目中使用 obj-c 类时的编组设置
Posted
技术标签:
【中文标题】在 nativescript (with typescript) 项目中使用 obj-c 类时的编组设置【英文标题】:Marshalling setup when using obj-c class in nativescript (with typescript) project 【发布时间】:2020-12-26 17:23:54 【问题描述】:按照https://nativescript.org/blog/adding-objective-c-code-to-a-nativescript-app/ 上的说明,我设置了一个非常简单的 nativescript 项目(下面有 typescript):
-
tns 创建 simpleApp --tsc
tns平台添加ios
tns 准备 ios
通过 xcode 运行生成的 ios 项目。
应用程序运行正常。
接下来我在项目中添加了一个自定义的 obj-c 类(App_Resources/iOS/src/Stuff .h 和 .m):
#import <Foundation/Foundation.h>
@interface Stuff: NSObject
+(void)doStuff;
@end
#import "Stuff.h"
@implementation Stuff
+(void)doStuff
NSLog(@"I should see this...");
@end
还有一个module.modulemap:
module Stuff
header "Stuff.h"
export *
tns prapare ios
命令成功处理了该类。
当我尝试将“Stuff”对象添加到打字稿源时,我得到一个cannot find name Stuff
。
如何让 typescript 和 obj-c 之间的编组/元数据工作?我需要运行一些脚本吗?添加进口?教程没有提到任何关于那...
这是我添加到 nativescript 默认模板应用程序中的:
onTap()
this._counter--;
this.updateMessage();
Stuff.doStuff();
并希望在点击按钮时看到日志文本...
【问题讨论】:
【参考方案1】:我找到了一种将所需的 .d.ts 文件添加到项目中的方法: generating-typescript-typings
在您的 nativescript 项目的 src-root 中运行以下命令:
TNS_TYPESCRIPT_DECLARATIONS_PATH="$(pwd)/typings" tns build ios
它会生成一个类型文件夹,其中包含 ios 类的所有 .d.ts 文件,包括手动创建的 Stuff 类。现在可以正确解释 Typescript 代码......新的 obj-c 类一旦被上面的行处理,就可以在 TS 代码中寻址。
【讨论】:
以上是关于在 nativescript (with typescript) 项目中使用 obj-c 类时的编组设置的主要内容,如果未能解决你的问题,请参考以下文章
nativescript-couchbase-plugin 查询
PostgreSQL JOIN with array type with array elements order,如何实现?
关于 Vue 3 + TypeScript 和 Augmenting-Types-for-Use-with-Plugins 的问题
如何在 Nativescript-Vue 中使用 nativescript-drawingpad?
Array types are now written with the brackets around the element type问题的解决方法