`
majianglin
  • 浏览: 16580 次
  • 性别: Icon_minigender_1
  • 来自: 北京
最近访客 更多访客>>
社区版块
存档分类
最新评论

Objective-C内存管理规则

阅读更多
参考:关于Obj-C内存管理的规则,感觉回复的作者zeta有水平

总结一下

1. 用双引号括起来的字符串常量,编译器分配的是静态地址,不需要release

2. 自己alloc出来的对象,自己release

3. 类的静态创建方法创建的对象(比如 [NSString stringWithString: @"test"])使用auto release,程序中需要有NSAutoreleasePool对象实例,否则运行时有日志警告信息
   autorelease called without pool for object (872a188) of class GSAutoreleasedMemory in thread <NSThread: 0x871bee8>
大致意思是说对象进行了autorelease却没有autorelease pool对象

4. 指针赋值b=a,2个指针指向同一个对象,只需要release其中一个就可以,release多了反而可能出错

5. auto release不定期执行,所有有时候已经release的对象还可以取到值

分享到:
评论

相关推荐

    Objective-C基础教程(入门教程).pdf

    综上所述,本教程覆盖了Objective-C编程语言的基础知识点,不仅包括语法和结构,还包括与C语言的兼容性、内存管理机制、面向对象编程的核心概念、以及如何在不同操作系统平台上进行开发的介绍。通过这些内容的学习,...

    Objective-C内存管理课件.pdf

    Objective-C内存管理是iOS开发中非常重要的一部分。在早期的Objective-C中,内存管理是通过引用计数(Reference Counting)的方式进行的,开发者需要手动对对象的引用进行管理。内存管理的基本原则可以概括为“谁...

    Objective-C与Objective-C++的混用代码示例

    - **内存管理**:Objective-C使用ARC(Automatic Reference Counting),而C++使用自己的内存管理规则。在混用时要特别注意内存泄漏问题。 - **命名冲突**:C++的命名空间和Objective-C的类别可能会引起命名冲突,...

    Objective-C经典面试题

    本次整理的“Objective-C经典面试题”中的知识点,主要针对C语言中的指针概念、Objective-C语言的数组和指针操作、宏定义及使用、预处理器指令的应用、内存分配与释放、以及Objective-C中委托(Delegation)和字符串...

    Objective-C 内存管理机制 - iOS知识库1

    Objective-C 是 iOS 开发中的主要编程语言,其内存管理机制对于优化应用性能和防止内存泄漏至关重要。内存管理主要关注如何有效地分配和释放内存,确保程序的稳定运行。 1. **值类型与引用类型:** - **值类型**...

    Objective-C培训教程

    第四章内存管理,讲解了Objective-C中对象的内存分配和释放机制。在早期的Objective-C版本中,开发者需要手动管理内存,利用retain和release方法来增加或减少对象的引用计数。而在现代的Objective-C版本中,引入了...

    Objective-C程序设计

    《objective-c程序设计》通过大量的实例系统地介绍了objective-c语言的基本概念、语法规则、框架、类库及开发环境。读者在阅读《objective-c程序设计》后,可以掌握objective-c语言的基本内容,并进行实际的iphone/...

    Swift和Objective-C混合编程示例代码

    7. **内存管理**:Swift使用自动引用计数(ARC)和弱引用,而Objective-C也有同样的机制。在混合编程时,需要注意内存管理,避免循环引用导致的内存泄漏。 8. **@objc和@IBOutlet**:在Swift中,为了使得类、方法、...

    Effective Objective-C(原版)

    7. **内存管理(Memory Management)**:Objective-C使用引用计数来管理内存,而ARC(Automatic Reference Counting)是现代Objective-C中的内存管理方式。书中会详细讲解如何使用ARC避免内存泄漏和循环引用。 8. *...

    Objective-C内存管理教程和原理剖析

    Objective-C的内存管理机制是基于手动管理的,与.NET和Java的自动垃圾回收机制不同。在Objective-C中,对象在堆上创建,并需要一个指针来保持对其的引用。例如,`ClassA *obj1 = [[ClassA alloc] init];` 这句代码...

    Using-Swift-with-Cocoa-and-Objective-C(4.1)

    - **内存管理**:Swift采用自动引用计数(Automatic Reference Counting, ARC)和可选类型,而Objective-C仅使用ARC。 - **安全性**:Swift支持结构化错误处理,Objective-C则使用异常处理。 2. **Swift与Objective...

    Objective-C-HTML-Parser.zip

    3. **内存管理**:Objective-C使用引用计数来管理内存,所以解析过程中创建的对象需要正确地保留和释放,以避免内存泄漏。 4. **遍历和递归**:HTML文档是嵌套的,解析器通常需要遍历元素并处理子元素,这可能涉及...

    objective-c 编程

    Objective-C是由C语言发展而来,融入了Smalltalk的面向对象特性,因此它结合了C的简洁性和面向对象的灵活性。 1. **面向对象编程基础**: Objective-C的核心是它的面向对象特性,包括类(Class)、对象(Object)...

    《Objective-C2.0程序设计(原书第2版)》_中文完整版

    Foundation框架为Objective-C提供了大量的内置类库,涵盖了字符串(Strings)、数字(Numbers)、集合(Collections)、文件操作(File Operations)、内存管理(Memory Management)、对象复制(Object Copying)和...

    iphone(Objective-C)

    Objective-C的命名规则与C语言类似,但更加强调可读性,如类名通常采用驼峰式命名,方法名则由动词开头,后跟名词描述。例如,`-(void)printHelloWorld`表示一个打印“Hello, World!”的方法。 在实际开发中,我们...

    The Objective-C Programming Language

    5. **内存管理**:Objective-C提供了一套内存管理规则(称为引用计数),用于控制对象的生命周期。 #### 四、Objective-C的开发环境与工具 苹果提供了完整的开发工具链来支持Objective-C的开发,包括Xcode集成开发...

Global site tag (gtag.js) - Google Analytics