NSObject-Meta
摘要
使用objc_getAssociatedObject和objc_setAssociatedObject有时会很麻烦。NSObject+Meta让为NSObject的另一个实例分配元对象变得简单。如果想要进行弱引用,请使用weakMeta。
对于保留对象,它使用 NSMutableDictionary,对于弱对象,它使用 NSMapTable 与弱值容器。
如何使用
假设self是一个UIViewController。
强元对象
self.view.meta = "I am the strong meta!" // [strongly] assigns a string to the view
self.view.setMeta("I am a strong meta for key: `test`", forKey: "test") // [strongly] assigns a string to a view based addressed by a specific key
print(self.view.meta as! String) // prints `I am the strong meta!`
print(self.view.meta(forKey: "test") as! String) // prints `I am a strong meta for key: `test``
弱元对象
self.view.weakMeta = "I am the weak meta!"
self.view.setWeakMeta("I am a weak meta for key: `test`", forKey: "test")
let _ = self.view.weakMeta // returns nil because the weak object is released immediately after assignment
let _ = self.view.weakMeta(forKey: "test") // returns nil because the weak object is released immediately after assignment
如何移除元赋值
只需使用相同的API,并传递nil值。
self.view.meta = nil // sets the default strong meta object for view to nil
self.view.setWeakMeta(nil, forKey:"somekey") // sets the weak meta object for key `somekey` to nil
示例
要运行示例项目,首先克隆仓库,然后在Example目录下运行pod install
命令。
要求
安装
NSObject-Meta可以通过CocoaPods获取。要安装
它,只需将以下行添加到您的Podfile文件中
pod 'NSObject-Meta'
作者
Hamidreza Vakilian,[email protected]
许可证
NSObject-Meta遵循MIT许可证。有关更多信息,请参阅LICENSE文件。