AnyObjectConvertible
Convert your own struct/enum to AnyObject easily.
Sumally
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()) // Fail
Of 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())) // OK
But Box<T> unwrap is too lazy.
let value = (notification.object as? Box<YourOwnStruct>)?.value
You 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? YourOwnStruct
Installation
CocoaPods
You 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 AnyObjectConvertible
Carthage
Create 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"
Manually
- Download and drop
AnyObjectConvertible.swift
in your project. - Congratulations!
License
MIT