2

在 Objective-C 中,我可能会使用+[NSValue valueWithNonretainedObject:]来保留对象的唯一 ID,而我不希望保留对象本身。似乎 Swift 不推荐使用这种方法。

在 Swift 中怎么做?

4

2 回答 2

7

它还在那里。它刚刚被调整为NSValue的初始化器之一:

let anObject = "Hello!"
let value = NSValue(nonretainedObject: anObject)
于 2014-06-27T14:17:29.470 回答
3

这有效:

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

fooval.description // evaluates to "<5040d191 b87f0000>", address of `foo`
于 2014-06-27T14:17:16.863 回答