2015 IOS 学习笔记 内存管理,页面跳转 ——蓝懿教育

——————————内存管理————————————————

手动内存管理(MRC)中常用的三个方法

retain:导致内存计数+1

release:导致内存计数-1

copy:复制出来一个新的对象 和之前对象的数据可能一致 但是 不是同一个对象 此对象内存计数是1

autorelease:自动释放 当变量出了自动释放池之后会自动释放

自动释放池在项目中有很多看不见的

属性描述关键字:

retain/strong:

//如果是retain 会做两件事

//-(void)setNames:(NSMutableArray *)names{

//    //第一件事把原来的release -1

//    [_names release];

////    第二件事把新传递进来的retain +1

//    _names = [names retain];

//

//

//}

属性生命时retain加的1 会在当前对象销毁时 执行dealloc方法的时候 执行release -1

assign/weak:

//如果是assign或weak set方法中只做了一件事

//-(void)setAge:(int)age{

//

//    _age = age;

//

//}

copy:

//如果是copy set方法中做一件事

//-(void)setNames:(NSMutableArray *)names{

//

//    _names = [names copy];

//}

readonly:如果用readonly修饰 会使属性只生成get方法 没有set方法

nonatomic:非原子性操作 不安全  效率高 非多线程都用nonatomic

atomic:原子性操作 线程安全 效率低 只有多线程访问数据的时候才有可能会使用此关键字

所有的基本数据类型用assign或weak但是因为是默认的 所以什么都不用写

所有的对象类型(除了NSString)都用 strong或retain

NSString需要用copy来修饰,为了避免连锁反应 改变了某一个字符串 导致一系列相关字符串发生改变

生命周期方法:

第一次运行起来:

1.已经运行完成

2.已经激活

按大饼退出:

1.将要失去激活

2.已经进入后台

按两下大饼返回:

1.将要进入前台

2.已经激活

——————————————————————

//根据屏幕不同分辨率显示控件:

self.window = [[UIWindow alloc]initWithFrame:[UIScreen mainScreen].bounds];

-----

UIviewController *vc

填充颜色:

self.window.backgroundColor = [UIColor whiteColor];

把window显示出来

[self.window.makeKeyAndVisible];

——————————————页面跳转————————————

/创建页面两种方式:1.通过代码创建页面和sb没关系

//    SecondViewController *vc = [[SecondViewController alloc]init];

//    2.通过sb创建页面 和sb有关

SecondViewController *vc = [self.storyboardinstantiateViewControllerWithIdentifier:@"secondvc"];

//跳转到某一个页面

[selfpresentViewController:vc animated:YEScompletion:nil];

}

- (void)viewDidLoad {

[superviewDidLoad];

// Do any additional setup after loading the view, typically from a nib.

//    [NSTimer scheduledTimerWithTimeInterval:2 target:self selector:@selector(jumpPage) userInfo:nil repeats:NO];

self.view.backgroundColor = [UIColoryellowColor];

}

-(void)jumpPage{

SecondViewController *vc = [[SecondViewControlleralloc]init];

//跳转到某一个页面

[selfpresentViewController:vc animated:YEScompletion:nil];

}

- (void)didReceiveMemoryWarning {

[superdidReceiveMemoryWarning];

// Dispose of any resources that can be recreated.

}

?

时间: 2024-10-26 09:16:01

2015 IOS 学习笔记 内存管理,页面跳转 ——蓝懿教育的相关文章

2015 IOS 学习笔记 界面图形计算器的制作——蓝懿教育

- (IBAction)calAction:(UIButton *)sender { self.number1 = [self.resultLabel.textfloatValue]; self.operator = sender.tag; self.resultLabel.text = @"0"; } - (IBAction)clear:(id)sender { self.resultLabel.text = @"0"; //     self.resultLab

2015 IOS tabelView分组、Xib、Cell——在蓝懿教育 学习笔记

TabelView分组.表头,表尾 删除vc 搭建tvc 分组界面中return 2 分2组: 在控制行加判断 如果section== 1  return10 (此时012 0123456789) 在sb中选中tv在style右样式改成Grouped 此时有了间隔 控制分组题头和尾.有个字符串 -(NSString *)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section{ return @"我

JVM学习笔记-内存管理

第一章 内存分配 1. 内存区域. 方法区和堆(线程共享),程序计数器 , VM栈 和 本地方法栈(线程隔离). 1) java虚拟机栈:线程私有.描述的是java方法执行的内存模型:栈帧,用户存储 局部变量表,操作数栈,动态链接,方法出口等信息. 局部变量表在编译时即可完全确定!如果线程请求的栈深度大于 规定的深度,StackOverflowError. 2) 本地方法栈,类似. 3)堆:垃圾收集器管理的主要区域.线程共享. 4)方法区: 各个线程共享.存储:加载的类信息,常量,静态变量,即时

蓝懿 2015 IOS 学习笔记 数字运算 随机值 图形关联

来蓝懿教育学习的第一天,由刘国斌老师独家授课教学,一天下来感觉很充实,并且在没有任何基础之上学到如何在Xcode中运用简单的数字运算与图形关联方法.刘老师教课方式比较有趣生动,班级很活跃,我们这一批学员人数较少,所以学习气氛浓郁,把今天的笔记整理一下. ————————————首先是简单数字运用计算——————————————— ? ? int c =1231233123; float a = 10; float b = 232.23; float d = a-b-c; NSLog(@"%f&q

2015 IOS 学习笔记 正向反向练习 ——蓝懿教育

正向传值   蓝懿教育 跳转页面过程中 从ViewController(A类) 向 SecondViewController(B类)中跳转 在ViewControlller中创建的一个SecondViewController页面 所以从ViewController向Second传叫正向传值 如果传的是text 那么实际传的是字符串 所以要先在 SecondViewController.h中 建一个属性 Nsstring*accept    .h是开放可见的 那么ViewControlller中

蓝懿 2015 IOS 学习笔记 作用域 if判断 BOOL变量

我来自蓝懿教育 第二天学习了简单的计算器加减乘除的运算,变量,BOOL变量,以及if判断.掌握情况较为良好. 首先学习了简单计算器.在界面中输入两个添加数值的UITextview,在其中添加数字类型的数值,并且在下方有四个Button分别代表加减乘除,然后再放置两个Label作为符号显示与计算结果.图形是这样的: ————————随后学习的全局变量———————— 全局变量与局部变量的区别: 全局变量就是整个源程序都有效的变量:而局部变量会在其所属的函数或循环等结束后消亡.整个程序都要用的变量定

23-黑马程序员------OC 语言学习笔记---内存管理

黑马程序员------<a href="http://www.itheima.com" target="blank">Java培训.Android培训.iOS培训..Net培训</a>.期待与您交流! ------- 对于面向对象的变成语言,程序需要不断地创建对象.初始,创建的所有程序通常都有指针指向它,程序可能需要访问这些对象的实例变量或调用这些对象的方法,随着程序的不断执行,程序再次创建了一些新的对象,而那些老的对象已经不会再被调用,也不

iOS学习之内存管理

1.1 引用计数 Reference Count 1.2 自动引用计数,ARC(Automatic Reference Counting) 1引用计数 引用计数(Reference Count)是一个简单而有效的管理对象生命周期的方式.当我们创建一个新对象的时候,它的引用计数为 1,当有一个新的指针指向这个对象时,我们将其引用计数加 1,当某个指针不再指向这个对象是,我们将其引用计数减 1,当对象的引用计数变为 0 时,说明这个对象不再被任何指针指向了,这个时候我们就可以将对象销毁,回收内存.

Cocos2d-x学习笔记—内存管理机制

Cocos2d-x 3.x内存管理机制 1:C++内存管理 1-1:内存分配区域 创建对象需要两个步骤:第一步,为对象分配内存:第二步,调用构造函数初始化内存.在第一步中,可以选择几个不同的分配区域.这几个区域如下: (1) 栈区域分配.栈内存分配运算内置于处理器的指令集中,效率很髙,但是分配的内 存容量有限.由处理器自动分配和释放,用来存放函数的参数值和局部变量的值等.在执 行函数时,函数内局部变量的存储单元都可以在栈上创建,函数执行结束时这些存储单元自动被释放. (2) 堆区域分配.从堆上分