Structify 将 Swift 结构转换为 Objc 类的工具开源项目

我要开发同款
匿名用户2021年10月28日
35阅读
开发技术Swift
所属分类语法解析工具、开发工具
授权协议MIT

作品详情

Structify旨在让你更轻松将Swift结构转换为Objective-C类,开发者无需手动将结构转换为类,反之亦然。

不使用StructifystructUser{letaddress:Stringletcompany:Stringletemail:Stringletname:Stringletphone:Stringletuid:Stringletusername:Stringletwebsite:Stringletbirthday:Date}classRLMUser:Object{@objcdynamicvaraddress:String=""@objcdynamicvarcompany:String=""@objcdynamicvaremail:String=""@objcdynamicvarname:String=""@objcdynamicvarphone:String=""@objcdynamicvaruid:String=""@objcdynamicvarusername:String=""@objcdynamicvarwebsite:String=""@objcdynamicvarbirthday:Date=Date()overrideclassfuncprimaryKey()->String?{return"uid"}}extensionRLMUser{functoStruct()->User{returnUser(address:address,company:company,email:email,name:name,phone:phone,uid:uid,username:username,website:website,birthday:birthday)}}extensionUser{functoObject()->RLMUser{returnRLMUser.build{objectinobject.uid=uidobject.address=addressobject.company=companyobject.email=emailobject.name=nameobject.phone=phoneobject.username=usernameobject.website=websiteobject.birthday=birthday}}}乍一看似乎很方便的方法。但是如果你的结构不是那么小并且有更多的属性呢?如果你有太多类似User这样的结构时怎么办?如果您想在开发过程中为现有结构添加更多属性怎么办?

使用 StructifystructUser{varaddress:String=""varcompany:String=""varemail:String=""varname:String=""varphone:String=""varuid:String=""varusername:String=""varwebsite:String=""varbirthday:Date=Date()}classRLMUser:Object{//youonlysettheprimaryKeyasusualoverrideclassfuncprimaryKey()->String?{return"uid"}}extensionRLMUser:StructConvertible{typealiasStructType=User}extensionUser:ObjectConvertible{typealiasClassType=RLMUser}你唯一需要做的就是让你的结构符合ObjectConvertible协议并创建一个Objective-C对类并符合StructConvertible协议。要求iOS8.0+Xcode10.+Swift4.2+安装Structify可通过 CocoaPods获得。要安装它,只需将以下行添加到您的Podfile中:

pod'Structify'

 

查看全文
声明:本文仅代表作者观点,不代表本站立场。如果侵犯到您的合法权益,请联系我们删除侵权资源!如果遇到资源链接失效,请您通过评论或工单的方式通知管理员。未经允许,不得转载,本站所有资源文章禁止商业使用运营!
下载安装【程序员客栈】APP
实时对接需求、及时收发消息、丰富的开放项目需求、随时随地查看项目状态

评论