Roy*_* Li 3 memory-management ios automatic-ref-counting swift
我正在研究引用计数如何在Swift中工作.在下面的代码片段中,我实例化了一个全新的Person对象,并检查它是否被唯一引用.我认为它是唯一引用的,因为它只保留在"人"实例上.但是,isUniquelyReferencedNonObjC函数返回false.
谁能解释为什么会这样?
func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
var person = Person()
// this will output not unique
if isUniquelyReferencedNonObjC(&person) {
println("unique")
} else {
println("not unique")
}
return true
}
Run Code Online (Sandbox Code Playgroud)
人员类:
class Person: NSObject {
}
Run Code Online (Sandbox Code Playgroud)
编辑有趣的是,当我不使Person成为NSObject的子类时,isUniquelyReferencedNonObjC将按预期返回true.但是,我仍然不明白为什么子类化NSObjct会在这里产生影响.
提前致谢.
isUniquelyReferencedNonObjC
记录为
/// Returns `true` iff `object` is a non-\ `@objc` class instance with
/// a single strong reference.
/// ...
/// * If `object` is an Objective-C class instance, returns `false`.
/// ...
Run Code Online (Sandbox Code Playgroud)
你的Person
类继承自NSObject
,因此
isUniquelyReferencedNonObjC(&person)
返回false
.
归档时间: |
|
查看次数: |
250 次 |
最近记录: |