2

In Objective-C, I might use +[NSValue valueWithNonretainedObject:] to keep a unique ID of an object, where I don't wish to retain the object itself. Seems like that's deprecated for Swift.

How to do in Swift?

Clay Bridges
  • 11,602
  • 10
  • 68
  • 118

2 Answers2

7

It's still there. It's just been adjusted to be one of NSValue's initializers:

let anObject = "Hello!"
let value = NSValue(nonretainedObject: anObject)
Clay Bridges
  • 11,602
  • 10
  • 68
  • 118
Mick MacCallum
  • 129,200
  • 40
  • 280
  • 281
3

This works:

let foo: NSString = "hello"
let fooval: NSValue = NSValue(nonretainedObject: foo)

fooval.description // evaluates to "<5040d191 b87f0000>", address of `foo`
hamstergene
  • 24,039
  • 5
  • 57
  • 72