黑马程序员-objective-c学习总结
来源:互联网 发布:高速公路收费计算软件 编辑:程序博客网 时间:2024/06/05 02:37
------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------
1.ARC中的内存管理
首先是ARC中的成员变量声明,objective-c对象使用strong和weak两种关键字,不写默认为strong指针,
在ARC中,如果没有强指针指向对象时,就会释放,关于何时使用weak指针,当两类互相引用时,其中一类必须用weak来避免循环引用
assign关键字用于普通数据类型
@property (nonatomic, strong)NSString *name;@property (nonatomic, weak)NSString *dogName;@property (nonatomic, assign)int age;@property (nonatomic, assign,setter=setGod:)BOOL isDog;
在最新的xcode中默认为ARC模式,ARC属于编译器特性,是自动增加release方法代码
- (instancetype)init{ if (self = [super init]) { _age = 10; _name = @"Li Xiao Long"; } return self;}
-(void)dealloc{ //[super dealloc];}
可以重写dealloc方法,但是不可以调用super dealloc方法
下面示范一个错误的弱指针对象,因为使用了弱指针,所以这个对象创建完成后就被释放掉
__weak test *test2 =[[test alloc]init];
2.block
block是一种数据类型,和指向函数的指针类似,用于保存一段代码
int (^sunmBlock)(int,int) = ^(int a,int b){ return a + b; }; int sum = sunmBlock(10,15); NSLog(@"%d",sum);
block基本结构为 返回值 ^变量名 (形参,形参)
int (^sunmBlock) (int , int)
相当于一个c函数的声明,但是这是一条赋值语句,所以结尾一定要有分号
调用也非常简单
int sum = sunmBlock(10,15);
还可以使用自定义类型类使用block,来减少代码
typedef int (^MyBlock)(int,int);
MyBlock sunmBlock = ^(int a,int b){ return a + b; };
如果想在block访问外部变量,需要在外部变量前加__block关键字
__block int i = 0; MyBlock sunmBlock = ^(int a,int b){ i = a + b; return a + b; }; sunmBlock(10,15); NSLog(@"%d",i);
3.协议protocol
@protocol Test <NSObject>@required
@optional
@end协议是一个单独的.h文件,只负责声明方法,必须遵守基本协议NSObject,也可以遵守其他协议
@required//必须实现
@optional//可选
下面展示了开发中用的协议提前声明,以及指定协议遵守对象
@protocol Test;//提前声明协议@interface TestTxt : NSObject@property int age;@property NSString<Test> *name;//要求该对象遵守Test协议
4.NSArray,NSDictionary,NSNumber的快速语法
int i = 990; NSArray *ary = @[@"ABC",@"BCC"];//快速数组 NSDictionary *dict = @{ @"key":@20,//快速数据 @"key2":@'A',//快速单字符 @"key3":@(i),//快速变量 };//快速字典 NSLog(@"%@",ary[0]);//快速数组提取 NSLog(@"%@",dict[@"key2"]);//快速字典提取
0 0
- 黑马程序员-objective-c学习总结
- 黑马程序员-objective-c学习总结-代码行数统计程序
- 黑马程序员-objective-c基础学习
- 黑马程序员-objective-c基础学习-类
- 黑马程序员—学objective-c
- 【黑马程序员】---Objective-C核心语法总结
- 【黑马程序员】---Objective-C内存管理总结
- 黑马程序员---Objective-C学习笔记之一
- 黑马程序员--Objective-C Block学习
- 黑马程序员---Objective—C第七天课程学习(Foundation)
- 黑马程序员——Objective-C 第一天课程学习总结
- 黑马程序员——Objective-C 第二天课程学习总结
- 黑马程序员——Objective-C 第三天课程学习总结
- 黑马程序员——Objective-C 第四天课程学习总结
- 黑马程序员——Objective-C 第五天课程学习总结
- 黑马程序员——Objective-C介绍
- 黑马程序员------[Objective-C]初识Objective-C
- 黑马程序员------Objective-C------NSString常用方法总结
- 全面解析精讲数据结构第四章字符串和多维数组
- 哈理工新生赛热身赛解题报告
- 浮点数陷阱
- 北斗导航系统关键设备全面进入消费电子领域
- C#编程学习笔记
- 黑马程序员-objective-c学习总结
- eclipse生成jar包和用别人jar包的方法
- PHP 重写读取文件,适用多域名的情况!
- Intersection of Two Linked Lists--leetcode
- 【Qt开发-模拟电商网站】模态与非模态窗口
- request.getQueryString()的意思
- 策略模式
- AlertDialog与Dialog的区别以及一个奇怪的问题1
- windows8.1 explorer.exe win+E 出现“该文件没有与之关联的程序…………”解决办法