Convert your own struct/enum to AnyObject easily.
We can cast everything as AnyObject at Swift3.0 🎉
So, we would not need this library no longer
In swift, struct or enum cannot convert to AnyObject
NSNotificationCenter.defaultCenter().postNotificationName("foo", object: YourOwnStruct()) // FailOf course, you may wrap value using Box<T>.
class Box<T> {
let value: T
init(value: T) {
self.value = value
}
}
NSNotificationCenter.defaultCenter().postNotificationName("foo", object: Box(value: YourOwnStruct())) // OKBut Box<T> unwrap is too lazy.
let value = (notification.object as? Box<YourOwnStruct>)?.valueYou can cast your struct/enum directory if implement AnyObjectConvertible at that type.
extension YourOwnStruct: AnyObjectConvertible {}
NSNotificationCenter.defaultCenter().postNotificationName("foo", object: YourOwnStruct()) // OK
let value = notification.object as? YourOwnStructYou can use CocoaPods to install AnyObjectConvertible by adding it to your Podfile:
platform :ios, '8.0'
use_frameworks!
pod 'AnyObjectConvertible'To get the full benefits import AnyObjectConvertible wherever you import UIKit
import UIKit
import AnyObjectConvertibleCreate a Cartfile that lists the framework and run carthage bootstrap. Follow the instructions to add $(SRCROOT)/Carthage/Build/iOS/YourLibrary.framework to an iOS project.
github "tarunon/AnyObjectConvertible"
- Download and drop
AnyObjectConvertible.swiftin your project. - Congratulations!
MIT