Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save bubudrc/1ce74e1f067d5f987dd19b9bfe024648 to your computer and use it in GitHub Desktop.
Save bubudrc/1ce74e1f067d5f987dd19b9bfe024648 to your computer and use it in GitHub Desktop.
Get Array from Optional NSSet. Especially useful for getting an Array of objects in a Core Data many relationship.
/*
* Returns Array from optional NSSet. Returns empty array if NSSet is nil.
* It's useful for when you want an Array of objects from a Core Data many relationship.
*
* Example usage with managed object `game` with 1-to-many relationship to `Goal` entity:
* let goalArray = game.goals.array(of: Goal.self)
*/
extension Optional where Wrapped == NSSet {
func array<T: Hashable>(of: T.Type) -> [T] {
if let set = self as? Set<T> {
return Array(set)
}
return [T]()
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment