何时在Objective-C中使用原语?

Dan*_*ark 5 objective-c primitive-types

什么时候应该在Objective-C中使用原语而不是NSValue子类?这个代码肯定比使用NSNumber更干净(我认为):

    float width = sliderOne.frame.size.width;
    float totalWidth = width * 2 + 10;
Run Code Online (Sandbox Code Playgroud)

但有什么缺点吗?另外,我不需要release使用原语来调用任何东西是正确的吗?当内存超出范围时,内存是否会被释放?

pro*_*rmr 4

优先选择基本类型。仅当必须将 NSNumber 和 NSValue 对象作为对象传递时才使用它们。

基本类型的唯一缺点是不能将它们作为对象传递。

基本类型可以在堆栈(局部变量)或堆(w/malloc)上分配。对象只能在堆上分配,这比堆栈分配更昂贵。