小编Roy*_* Li的帖子

如何比较x86程序集中的有符号值和无符号值

我找不到比较x86汇编代码中的正数和负数的方法.

例如:当我比较-1和1时,我总是得到-1更大.我知道这是因为2的补码格式使-1在底层二进制中大于1.

但是,任何人都可以提供一个x86组件片段来比较正数和负数,并在数学上正确吗?(例如1> -1)

谢谢!

binary x86 assembly x86-64

3
推荐指数
1
解决办法
1万
查看次数

为什么在这种情况下,UniquelyReferencedNonObjC返回false?

我正在研究引用计数如何在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会在这里产生影响.

提前致谢.

memory-management ios automatic-ref-counting swift

3
推荐指数
1
解决办法
250
查看次数