相关疑难解决方法(0)

堆栈和堆的内容和位置是什么?

编程语言书籍解释了在堆栈上创建了值类型,并且在堆上创建了引用类型,而没有解释这两者是什么.我还没有看清楚这个问题.我理解堆栈是什么.但,

  • 它们在哪里和它们(物理上在真实计算机的记忆中)?
  • 它们在多大程度上受操作系统或语言运行时控制?
  • 它们的范围是什么?
  • 是什么决定了它们的大小?
  • 是什么让一个更快?

language-agnostic heap stack memory-management dynamic-memory-allocation

7847
推荐指数
27
解决办法
145万
查看次数

Objective-C ARC:强大vs保留和弱vs分配

有由ARC推出性能的两种新的内存管理的属性,strongweak.

除了copy显然是完全不同的东西之外,vs vs 之间有什么区别吗?strongretainweakassign

根据我的理解,这里唯一的区别是weak将分配nil给指针,而assign不会,这意味着程序将在指针释放后向指针发送消息时崩溃.但是,如果我使用weak,这将永远不会发生,因为发送消息nil不会做任何事情.

我不知道strong和之间有什么不同retain.

是否有任何理由为什么我应该使用assign,并retain在新的项目,或者是那种被弃用?

properties objective-c ios ios5 automatic-ref-counting

365
推荐指数
6
解决办法
19万
查看次数

目标C中的私有财产

有没有办法在Objective C中声明私有属性?目标是从合成的getter和setter中获益,实现某种内存管理方案,但不暴露给公众.

尝试在类别中声明属性会导致错误:

@interface MyClass : NSObject {
    NSArray *_someArray;
}

...

@end

@interface MyClass (private)

@property (nonatomic, retain) NSArray   *someArray;

@end

@implementation MyClass (private)

@synthesize someArray = _someArray;
// ^^^ error here: @synthesize not allowed in a category's implementation

@end

@implementation MyClass

...

@end
Run Code Online (Sandbox Code Playgroud)

objective-c

67
推荐指数
4
解决办法
5万
查看次数