Popularity
1.6
Growing
Activity
0.0
Stable
63
2
1

Programming language: Swift
Latest version: v0.0.3

AnyObjectConvertible alternatives and similar libraries

Based on the "Data Structures / Algorithms" category

Do you think we are missing an alternative of AnyObjectConvertible or a related project?

Add another 'Data Structures / Algorithms' Library

README

AnyObjectConvertible

Build Status Carthage compatible CocoaPods compatible

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

  1. Download and drop AnyObjectConvertible.swift in your project.
  2. Congratulations!

License

MIT


*Note that all licence references and agreements mentioned in the AnyObjectConvertible README section above are relevant to that project's source code only.