当前位置: 首页 > 面试题库 >

在Swift中声明和使用自定义属性

厉坚
2023-03-14
问题内容

我希望能够用元数据注释我的类型和方法,并在运行时读取它们。

语言参考说明了如何声明属性用法,但实际上可以声明自己的属性吗?

阅读将需要某种反射机制,我根本无法在参考文献中找到这种反射机制,因此问题的第二部分可能是-
是否可能反射。如果这些功能在Swift中不可用,是否可以用Objective-C代码完成(但在Swift实例和类型上)?

相对不相关的注释:关于将什么建模为属性以及将哪些内容添加到核心语法的决定让我感到非常武断。感觉像是两个不同的团队在语法和某些属性上工作。例如,他们把weakunowned到语言作为修饰,但做@final@lazy属性。我相信,一旦他们实际上添加了访问修饰符,它们就可能是likes属性final。所有这些都与Objective-
C的互操作性相关吗?


问题答案:

如果我们将iBook作为权威,那么似乎就没有像Java和.NET那样面向开发人员的创建任意新属性的方法。我希望此功能稍后发布,但就目前而言,我们似乎还不走运。如果您关心此功能,则应向Apple提出增强请求(组件:
Swift 版本: X

FWIW,在Objective-C中也确实没有做到这一点的方法。



 类似资料:
  • 我正在考虑将Auth0用于我的API和web应用程序,并进行查询。生成Jwt令牌时,我希望包含一些仅存在于我的用户数据库中的自定义用户声明。这是可能的,还是所有声明都需要作为Auth0中的预定义属性存在。 我有自己的用户数据库,因为我需要在那里存储一些动态和复杂的用户权限。我意识到一个选择是不将这些权限存储在令牌中,我可以有一个单独的api来获取它们,但是为了性能和简单性,我宁愿将它们包装到Jwt

  • 问题内容: 我定义了以下结构。 我创建了一个Person集合,如下所示: 现在,我尝试使用以下代码将active属性更改为false: 但我收到以下错误: 有任何想法吗? 解: 看起来Swift有时无法推断类型,这有点la脚!解决方法如下: 这不起作用: 问题答案: 当使用方括号作为参数时,必须将返回类型也放入:

  • 问题内容: 在Swift中应该如何声明和使用位字段? 像这样声明一个枚举确实可行,但是尝试对2个值进行或运算将无法编译: 我研究了Swift如何导入Foundation枚举类型,它是通过定义符合协议的a 来实现的: 而协议是: 但是,没有关于该协议的文档,我无法自己弄清楚如何实现它。此外,还不清楚这是实现位字段的官方Swift方法,还是这仅仅是Objective- C桥如何表示它们的方式。 问题答

  • 2. 定义和声明 2.1. extern和static关键字 在上一节我们把两个程序文件放在一起编译链接,main.c用到的函数push、pop和is_empty由stack.c提供,其实有一点小问题,我们用-Wall选项编译main.c可以看到: $ gcc -c main.c -Wall main.c: In function ‘main’: main.c:8: warning: implic

  • 问题内容: 我正在尝试使用以下代码声明和初始化属性。 但是,出现以下错误。 有人知道这是怎么回事吗?我应该放弃使用声明内联初始化属性的尝试,而是对init()方法进行初始化吗? 问题答案: 正如@giorashc所说,由于swift的两阶段初始化,self尚未被初始化,因此您不能这样做。 但是我认为您可以创建一个懒惰的初始化:

  • 我正在使用maven项目进行UI自动化,我需要在多个环境和多个浏览器中运行一些测试。我已经创建并添加了pom.xml文件,并声明了其中的属性。但是当我通过终端执行它时,我得到了错误。我用的命令- 错误-[信息]扫描项目...[ERROR][ERROR]处理POM时遇到一些问题:[FATAL]不可解析POM d:\work\cucumber_projects\ui-automation-projec