NSObject-Meta 0.1.0

NSObject-Meta 0.1.0

H. Vakilian维护。



  • Hamidreza Vakilian

NSObject-Meta

CI Status

Version

License

Platform

摘要

使用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文件。