ios学习总结(二)

第四章 内存管理

NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init ]; [pool drain];

事实上程序中可以有多个自动释放池。自动释放池其实并不包含实际的对象本身,仅仅是对释放的对 象的引用。通过向目前的自动释放池发送一条autorelease 消息,可以将一个对象添加到其中。

引用计数:

概念:创建对象时,将它的引用次数设置为1,每一次必须保持该对象时,就发送一条retain 消息, 使其引用次数加 1。

[myFraction retain];

不再需要对象时,可以通过发送 release 消息,使对象的引用次数减 1。 [myFraction release];

当引用计数为 0 的时候,系统就会释放它的内存,通过向对象发送dealloc 消息。通过向对象发送 retainCount 消息可以获得这个对象的引用计数, 返回的是NSUInteger 整数。 只要对象的引用计数不为0, 系统就不会释放对象使用的内存。

将对象添加到任何类型的集合中都会使该对象的引用计数增加。从任何集合中删除对象都能够使其引 用计数减少。

内存中常量字符串没有引用计数机制,因为永远不能释放这些对象。这也适用于使用常量字符串初始 化的不可变字符串对象。

当某段代码需要访问一个对象的时候, 将对象的引用计数器加1, 当其为0 表明不再有代码访问该对象 了,即对象将被销毁(通过调用dealloc 方法) 。

时间: 2024-10-01 07:12:28

ios学习总结(二)的相关文章

IOS学习随笔二

IOS tableViewController tableViewController ---带有Controller的类都是标准的MVC模式 tableView的使用:----tableViewController的子类,只有View tableView和他的类型:tableView控件可以通过自己写继承于tableview的子类来控制tableview,只要这个tableview关联到这个控件,在storyboard中去设置, 关于tableview可以查看其他笔记 下面的代码是在写tabl

iOS 学习笔记 二 (2015.02.26)

How To Use Git Source Control with Xcode in iOS 6 If you're new here, you may want to subscribe to my RSS feed or follow me on Twitter. Thanks for visiting! How to use Git source control with Xcode This tutorial is by Malek Trabelsi, a passionate iOS

iOS学习连载二之OC类和类之间的关联关系

类和类直接按存在多重关系,比如继承关系.关联关系:继承关系通俗的讲即什么是什么,关联关系即什么有什么:比如:继承关系:父亲和孩子之间的基因继承关系:关联关系:老师和学生之间的关联关系.下面讲一个例子,是汽车.引擎和车灯之间的关联关系. 首先,先写除了main类的其他类,包括.h文件和.m文件 lam.h代码: // //  Lamp.h //  oc2_Car_Engine_Lamp_test1 // //  Created by imac on 15/7/21. //  Copyright (

零基础学习IOS开发(二)- 使用cocos2d-x3.0 执行Hello world

关于开发框架,依据网上检索来的信息,感觉cocos2d-x的ios游戏开发框架非常不错,并且有非常强的可移植性,因此打算尝试一下. 截止写下此文章,最新的cocos2d-x的版本号为v3.0稳定版(几天前刚刚公布),下载地址为:http://www.cocos2d-x.org/filedown/cocos2d-x-3.0-cn 安装方式例如以下: 1.解压程序压缩包(所在路径不能有中文哦,由于是python,你懂的...) 2.sudo python setup.py 安装cocos2d-x,依

iOS学习之UINavigationController详解与使用(二)页面切换和segmentedController

1.RootView 跳到SecondView 首先我们需要新一个View.新建SecondView,按住Command键然后按N,弹出新建页面,我们新建SecondView 2.为Button 添加点击事件,实现跳转 在RootViewController.xib中和RootViewController.h文件建立连接 在RootViewController.m中实现代码,alloc一个SecondViewController,用pushViewController到navigationCon

iOS学习笔记20-地图(二)MapKit框架

一.地图开发介绍 从iOS6.0开始地图数据不再由谷歌驱动,而是改用自家地图,当然在国内它的数据是由高德地图提供的. 在iOS中进行地图开发主要有三种方式: 利用MapKit框架进行地图开发,利用这种方式可以对地图进行精准的控制 调用苹果官方自带的地图应用,主要用于一些简单的地图应用,无法精确控制 使用第三方地图开发SDK库 用得最多的还是MapKit,所以这节就只讲MapKit的使用. 二.MapKit核心类 MapKit的核心类为地图展示控件MKMapView,以下是常用的属性.对象方法以及

[转]iOS学习之UINavigationController详解与使用(二)页面切换和segmentedController

转载地址:http://blog.csdn.net/totogo2010/article/details/7682433 iOS学习之UINavigationController详解与使用(一)添加UIBarButtonItem是上篇,我们接着讲UINavigationController的重要作用,页面的管理和切换. 1.RootView 跳到SecondView 首先我们需要新一个View.新建SecondView,按住Command键然后按N,弹出新建页面,我们新建SecondView 2

iOS学习笔记13-网络(二)NSURLSession

在2013年WWDC上苹果揭开了NSURLSession的面纱,将它作为NSURLConnection的继任者.现在使用最广泛的第三方网络框架:AFNetworking.SDWebImage等等都使用了NSURLSession.作为iOS开发人员,应该紧随苹果的步伐,不断的学习,无论是软件的更新.系统的更新.API的更新,而不能墨守成规. 相比较NSURLConnection,NSURLSession提供了 配置会话缓存.协议.cookie和证书能力,这使得网络架构和应用程序可以独立工作.互不干

IOS学习之IOS沙盒(sandbox)机制和文件操作(二)

我们看看如何获取应用程序沙盒目录.包括真机的沙盒的目录. 1.获取程序的Home目录 NSString *homeDirectory = NSHomeDirectory(); NSLog(@"path:%@", homeDirectory); 打印结果: 2012-06-17 14:00:06.098 IosSandbox[3536:f803] /Users/rongfzh/Library/Application Support/iPhone Simulator/5.1/ Applic

IOS学习笔记 -- Modal和Quartz2D

一. Modal1.Modal的默认效果:新控制器从屏幕的最底部往上钻,直到盖住之前的控制器为止;Modal只是改变了View的现实,没有改变rootViewController 2.常用方法1>.以Modal的形式展示控制器- (void)presentViewController:(UIViewController *)viewControllerToPresent animated: (BOOL)flag completion:(void (^)(void))completion2>.关