CodingForP 1.0.1

CodingForP 1.0.1

测试已测试
语言语言 SwiftSwift
许可证 MIT
发布最后发布2017年9月
SwiftSwift 版本3.0
SPM支持 SPM

Undead1116 维护。



  • harly

CodingForP

Coding For Plist 是一种特殊的配置方法,使用 plist 文件来配置视图模块,而不是调整项目中所有的代码。

很久以前...

看看我们每天遇到的情况,我们从 API 服务器获取了一些 JSON 数据,然后我们需要手动将其转换为我们的视图。

Cover

例如创建模型、绑定模型、为 tableView 数据源创建数组等工作流程,让我每天都很疯狂。

为什么使用 plist

那么对于每一行生成一个对象模型怎么办?我们有一些像左标题、右标题、颜色等元素。

struct ConfigRow
{
    // left title
    var key : String!
    
    // right title
    var value : String!
    var sortOrder : Int = 0
    var color : String = ""
}

我们不是在模型或 ViewModel 中添加配置逻辑,而是在项目中创建一个 plist 文件。然后反序列化 plist 并将其转换为视图的数据源。

plist

所以我们可以为 tableView 数据源获取一个 [ConfigRow] 数组。

每次我们想要修改标题、颜色甚至排序时,只需要修改 plist 文件就足够了!。

当使用 CodingForP 工具时

我们可以使用如下方式在单元格中填充标签:

leftTitle.text = model.value(forKey : row.value)
然后使用一些常用的方法使用 KVC 填充标签,但对于复杂的字符串值怎么办?

描述:MemberId + MemberDescription

描述标签可能包括两个字段:memberId 和 description。但正如我们之前提到的,只修改 plist 文件即可更改我们的 UI 和模型。

那么就来 CodingForP:我们可以这样配置 plist:[图片链接]

而且像:*&xxxx&*,*$xxxx$* 这样的关键字将自动替换为模型中的值。

在 CodingForP 中,如果您想使用它修改视图上的文本/颜色等,您唯一需要做的事情就是修改您的 plist 文件,而不是项目中任何代码!

关键词

  • *& xxxx &*
    基本格式,xxx 可以是任何密钥

  • *$ xxxx $*
    货币格式,xxx可以是任何需要显示为货币的密钥,例如工资。

  • <| xxxx |>
    可空格式,xxx可以是上述任何格式,例如 <| 学生ID : \*& sId &* |>,如果 sId 为空,则 <| 和 |> 之间的整个表达式将为空,因此错误显示如学生ID: “” 可以通过此格式修复。

  • *=
    可以使用此模式设置默认值。例如: \*& sId \*= 998 &*,如果 sId 为空,表达式将为 998,而不是 null,因为你设置了默认值 - 998

示例

JSON

 let sampleSource = ["userName" : "harly", "userId" : "123", "price" : "" , "salary" : 5000]

CodingForP 表达式

-p \*&userId&* \*&userName&* 's salary is  \*$salary$\* 

转换后

Harly 123 's salary is 5,000.00元

设置和安装

####Cocopods: CodingForP 通过CocoaPods提供。要安装它,只需将以下行添加到您的Podfile

pod install CodingForP

然后您可以直接调用函数

func smartTranslate(_ plistString : String ,
                    fromLazyServerJson serverDic : [String : AnyObject])

然后 plistString 应该是您的 plist 表达式,返回值将是生成后的预期结果。

要求

  • Xcode 8.x
  • Swift 3.0