`

IOS内存管理tips

 
阅读更多
IOS中的内存管理是通过reference count来管理的,

IOS框架提供了2种内存管理方法,MRR(manual retain-release)和ARC(automatic retain-release)


1、Release或者Overwriting还在使用的数据回导致程序崩溃
2、不Release不再使用的数据导致内存泄露,会影响系统性能并导致程序异常退出。


Memory Management Policy:


“alloc”,“new”,“copy”,“mutableCopy” 创建一个新对象


“retain”关键字使用场景:(1)保存一个属性值,(2)防止自己需要的对象被释放


“release”,“autorelease" 释放一个对象。
”autorelease“ 含义就是我想释放一个对象,但是允许调用方法的对象使用该对象之后再释放。即其生命延长到调用该对象的方法的生命周期上了。


Example:

{

    Person *aPerson = [[Person alloc] init];


    // ...


    NSString *name = aPerson.fullName;


    // ...


    [aPerson release];


}


无需释放name,因为不是我们创建的,不归我们释放,只释放自己创建的对象。


”dealloc“ 不要直接调用其他对象的dealloc,实现完自己的dealloc逻辑之后,一定要调用父类的dealloc。


Practical Memory Management:
1、关于对象属性的内存管理,一般情况下,直接使用Synthesize关键字就行了,它会自动帮助我们生成setter和getter方法,让生命变简单一点,。
2、使用setter方法给属性赋值
3、不要在initialize,dealloc方法中使用Accessor方法,可以直接给属性赋值。

内存检测工具
1、Analyze
2、Instrument


分享到:
评论

相关推荐

    IOS应用源码——SlavaBushtruk-Alterplay-iOS-dev-tips-b6ab5ea.rar

    4. **性能优化**:开发者SlavaBushtruk可能分享了一些提高应用性能的策略,如内存管理、GPU优化、计算性能提升等。 5. **错误处理与日志记录**:良好的错误处理机制能够帮助开发者快速定位问题,项目中可能包含如何...

    iOS开面试题+考试试卷+懒人开发tips

    面试题通常涵盖Objective-C或Swift的基础语法、内存管理、ARC机制、多线程、KVC与KVO、通知机制、GCD、设计模式(如单例、工厂、观察者等)、 MVC/MVVM/Viper架构、AutoLayout与SizeClass、SwiftUI、CoreData、网络...

    iOS开发杂货铺 面试题+考试试卷+懒人开发tips.zip

    3. **ARC(Automatic Reference Counting)**:理解内存管理,知道如何避免内存泄漏。 4. **MVC(Model-View-Controller)设计模式**:了解并能实际运用这一核心架构模式。 5. **KVC(Key-Value Coding)与KVO...

    Swift tips Swift 开发者必备的tips

    13. **懒加载和内存管理**:Swift中的`lazy`存储属性和自动引用计数(Auto Reference Counting, ARC)机制帮助开发者有效地管理内存。 14. **SwiftUI**:虽然Swift 4.0时SwiftUI还未发布,但书中可能也会提及iOS开发...

    ios-tips:Cisco IOS 提示

    在IT行业中,Cisco IOS(Internetwork Operating System)是Cisco网络设备上广泛使用的操作系统,它为路由器、交换机及其他网络设备提供了强大的功能和管理接口。"ios-tips:Cisco IOS 提示"显然是一份集合了提高...

    Swift 开发者必备 Tips

    根据需求选择合适的类型,可以优化性能并降低内存管理的复杂性。 4. **闭包与函数** Swift的闭包可以捕获和存储上下文中的常量和变量,使得我们可以创建匿名函数。闭包常用于回调和序列操作,如map、filter和...

    iOS开面试题+考试试卷等资料

    1. **Objective-C/Swift基础**:这是iOS开发的基础,面试中会考察你对这两种语言的理解,包括语法特性、面向对象编程概念、类型系统和内存管理。 2. **UIKit框架**:UIKit是构建iOS用户界面的主要框架,了解...

    Swifter -Swift 必备 Tips (第四版) 王巍(喵神) 作

    Swift的内存管理是其独特之处,它采用自动引用计数(ARC)和弱引用来确保内存的有效利用。这部分内容对于防止内存泄漏和理解对象生命周期至关重要。 在iOS开发中,UI编程是必不可少的。书中可能涵盖了Storyboard、...

    awesome-tips-ios-app:知识小集 iOS 客户端

    了解内存管理,包括引用计数和ARC(Automatic Reference Counting),能帮助减少内存泄漏。此外,掌握GCD(Grand Central Dispatch)进行多线程编程,以及利用NSOperation和NSOperationQueue进行异步任务调度,都是...

    记录iOS(Swift)开发中的一些知识点、小技巧.zip

    以下是一些重要的iOS开发概念和Swift编程实践,这些都是从"iOSTips-master"文件中可能包含的内容: 1. **Swift语言特性**:Swift是一种强大的、类型安全的编程语言,其特性包括可选类型(Optionals)、泛型...

    objccn-swifter-tips.pdf

    11. 内存管理:Swift的内存管理机制与Objective-C有很大的不同,它通过自动引用计数(ARC)来管理内存,提供了一种更为安全和简单的内存管理方式。 12. GCD和延时调用:Swift中的Grand Central Dispatch(GCD)提供了一...

    Swifter - Swift 开发者必备 Tips

    7. **内存管理**:Swift使用自动引用计数(Automatic Reference Counting, ARC)来管理内存,理解引用循环和weak/unowned引用是避免内存泄漏的关键。 8. **异步编程**:Swift提供了GCD(Grand Central Dispatch)和...

    swift-iOS知识小集

    在Swift编程语言中,iOS开发涉及众多细节和技巧,这些小知识点构成了开发者..."iOS-Tips-master"这个压缩包很可能是对上述知识点的实例化和详细解释,包含了各种代码示例和实践指导,对于提升Swift编程技能非常有帮助。

    Swifter tips

    8. **性能优化**:了解Swift的内存管理机制,如引用计数、自动引用循环检测(ARC)以及何时使用`weak`和`unowned`,能有效避免内存泄漏。 9. **运算符重载**:Swift允许自定义运算符,这在创建数学库或自定义数据...

    Swift Tips

    4. **Swift内存管理**:了解引用计数(Reference Counting)和自动引用循环(ARC)的工作原理,学习如何避免内存泄漏。 5. **SwiftUI与UIKit**:SwiftUI是苹果推出的声明式UI框架,可以用于构建iOS、macOS等平台的...

    Swifter - 100 个 Swift 必备 tips (第四版) 喵神出品,必属精品

    5. **内存管理**:了解引用计数与自动引用循环(ARC),避免内存泄漏和性能问题。 6. **SwiftUI**:SwiftUI 是苹果推出的全新界面构建框架,提供声明式编程方式,让界面设计更加简洁。 7. ** Combine 框架**:...

    swifttips文档格式全集

    8. **自动引用计数(Automatic Reference Counting, ARC)**:Swift使用ARC管理内存,避免了手动内存管理可能导致的内存泄漏问题。 9. **扩展(Extensions)**:Swift允许给已有的类型添加新功能,无需继承,增强了代码...

    Swifter-Swift开发者必备Tips-4

    4. **智能指针与内存管理**:Swift4对`Strong`, `Weak`, 和 `Unowned`引用进行了优化,确保了内存安全。理解这些引用的用法对于防止循环引用至关重要。 5. **枚举增强**:Swift4允许枚举实例包含关联值,这在处理...

Global site tag (gtag.js) - Google Analytics