@objc(MJTester)
@objcMembers
class MJTester: NSObject {
// make sure to use `dynamic` attribute for basic type & must use as Non-Optional & must set initial value
dynamic var isSpecialAgent: Bool = false
dynamic var age: Int = 0
var name: String?
var identifier: String?
}
@objc or @objcMembers attributes should be added to class or property for declaration of Objc accessibility [在 Swift4 之后, 请在属性前加 @objc 修饰或在类前增加 @objcMembers. 以保证 Swift 的属性能够暴露给 Objc 使用. ]
If you let Bool & Int as property type, make sure that using dynamic to attribute it. It must be Non-Optional type and assign a default value.[如果要使用 Bool 和 Int 等 Swfit 专用基本类型, 请使用 dynamic 关键字修饰, 类型为 Non-Optional, 並且给定初始值.]
MJExtension
📜✍🏻Release Notes: more details
Contents
Getting Started【开始使用】
Features【能做什么】
JSON
–>Model
、Core Data Model
JSONString
–>Model
、Core Data Model
Model
、Core Data Model
–>JSON
JSON Array
–>Model Array
、Core Data Model Array
JSONString
–>Model Array
、Core Data Model Array
Model Array
、Core Data Model Array
–>JSON Array
Installation【安装】
CocoaPods【使用CocoaPods】
Carthage
Swift Package Manager
Released from
3.4.0
Manually【手动导入】
MJExtension
to your project.【将MJExtension
文件夹中的所有源代码拽入项目中】#import "MJExtension.h"
【导入主头文件:#import "MJExtension.h"
】Examples【示例】
Add
MJKeyValue
protocol to your model if needed【如果有需要, 请在模型中加入MJKeyValue
协议】Usage in Swift [关于在Swift中使用MJExtension] ‼️
@objc
or@objcMembers
attributes should be added to class or property for declaration of Objc accessibility [在 Swift4 之后, 请在属性前加@objc
修饰或在类前增加@objcMembers
. 以保证 Swift 的属性能够暴露给 Objc 使用. ]Bool
&Int
as property type, make sure that usingdynamic
to attribute it. It must beNon-Optional
type and assigna default value
.[如果要使用Bool
和Int
等 Swfit 专用基本类型, 请使用dynamic
关键字修饰, 类型为Non-Optional
, 並且给定初始值.]The most simple JSON -> Model【最简单的字典转模型】
JSONString -> Model【JSON字符串转模型】
Model contains model【模型中嵌套模型】
Model contains model-array【模型中有个数组属性,数组里面又要装着其他模型】
Model name - JSON key mapping【模型中的属性名和字典中的key不相同(或者需要多级映射)】
JSON array -> model array【将一个字典数组转成模型数组】
Model -> JSON【将一个模型转成字典】
Model array -> JSON array【将一个模型数组转成字典数组】
Core Data
Coding (Archive & Unarchive methods are deprecated in iOS 12)
Secure Coding
Using
MJSecureCodingImplementation(class, isSupport)
macro.Camel -> underline【统一转换属性名(比如驼峰转下划线)】
NSString -> NSDate, nil -> @””【过滤字典的值(比如字符串日期处理为NSDate、字符串nil处理为@””)】
NSDate -> NSString【模型转字典时, 修改 Date 类型至 String】
More use cases【更多用法】
NSObject+MJKeyValue.h
andNSObject+MJCoding.h
期待