Objective C 以及 Xcode的总结
2014-11-19 21:51
232 查看
大纲
公有、私有
类方法、对象方法
对象用指针、原始类型
强指针、弱指针
发送消息
初始化:init dealloc
alloc release
retain +1
语法细节
1. for(xx in array)
2. @[xx,xx]数组
@{key:v,…}字典
@“…”string
@() NSNumber
3. #import
4. NSObject
NSString
NSArray:只能保存Objective C对象,不能存nil
NSMutableSrting
NSDictooinary
NSNumber
NSNull
NSValue
NSEnumerator:不能改变数组内容
NSData:bits
NSDate
NSRange:只能为正数范围
UIColor
UIFont: preferredFontForTextStyle
5. @interface A:NSObject
@end
6. @interface A()
@end
@implementation A
@end
7. 对象在堆中,自动处理分配
8. 强指针:只要指向,便自动保存内容=》引用计数
9. @property
10. 对象方法
发送消息[] 方法 . 属性
11.self自身
super父类
12.所有实例变量从0开始
13.NSLog
14:init:
{
if (self = [super init]) {..} return self;
}
15. id:泛型,可以指向任何对象
16.description:类似toString
17.若只通过指针引用某类,可以用@class A;继承:必须import
18.除非名字里含有copy,否则返回指针
19. 初始化
[[xx alloc]init]
[[xx alloc]initWith:1 b:2]
[NSString stringWithFormat:@“%d”, 42]
20.id不会产生警告,会crush
NSString* 和id一样的,只是可能在编译器进行检查,产生警告
21.KVO:当制定对象的属性修改了,允许对象收到通知的机制
Proxy类观察A
Proxy类:[A AddObserver:self forKeyPath:… ]成为A的观察者
ObserveValueForKeyPath:如何响应变化的消息,当A的被观察属性变动,会调用该方法
22. isKindOfClass
isMemberOfClass
respondsToSelector
23. 协议
@protocol xx<父亲protocol>
@end
NSObject protocol
NSObject类
NSProxy protocol更简单
@interface A:NSObject<xx>
@end
或者@interface A():<xx> 在.m中
24.代码块(类似函数指针)
^(参数列表) {内容}
可以访问与其同时定义的本地变量作为常量(复制并保存变量的状态)
作为变量,需声明_block a = 3;再在block中用
可作为参数
block中的东西都会存一个强指针—>若将block存储,容易产生循环引用
__weak class* c = self —>不会产生循环引用了
25. 多线程(Grad Central Dispatch)
提交代码块或者函数作为线程运行
nonatomic:互斥的getter和setter
方法:
performSelectorInBackground: @selector withObject:nil/xxx
队列:dispatch_async异步调用,dispatch_sync同步调用
dispatch_queue_create
dispatch_get_global_queue
dispatch_get_main_queue
dispatch_get_current_queue
NSOperationQueue:更加可控
26.类别:为现有类提供新方法,类扩展,无需再()中加东西,用于一个类分块实现@interface A(xx/空)
27.委托:一种对象(委托对象1),有另一个类(TableView2)请求执行某些工作
2向1发送消息:(bool) tableView:v shouldSelectRow:r
1告诉2返回值
例子:1Finder,符合一个BrowserDelegate协议
2browser,设Finder为Delegate: browser setDelegate:finder
browser做一些事,调用1的某些方法
28. selector: resondsToSelector:@selector(f1: xx:)
performSelector: withObject:
[array makeObjectsPerformSelector: withObject:]
[btn addTarget:object action:@selector]
29. struct->string
string->struct
30. [NSUserDefault standardUserDefault]
setArray forKey
setDouble forKey
setInteger forKey
setObject forKey
arrayForKey…
synchronize
31 NSAttributeString:不可修改
(NSDictionary*) attributesAtIndex: effectiveRange
可以查找,如果要保存查找的结果,需要copy一份
快捷键
1. control+拖控件:添加时间属性
2. option+点击:help
3.cmd+点击:查看内容
ctrl A:行首
ctrl E:行尾
ctrl T:交换
ctrl D:删除后面的
ctrl K:删除后面的所有
公有、私有
类方法、对象方法
对象用指针、原始类型
强指针、弱指针
发送消息
初始化:init dealloc
alloc release
retain +1
语法细节
1. for(xx in array)
2. @[xx,xx]数组
@{key:v,…}字典
@“…”string
@() NSNumber
3. #import
4. NSObject
NSString
NSArray:只能保存Objective C对象,不能存nil
NSMutableSrting
NSDictooinary
NSNumber
NSNull
NSValue
NSEnumerator:不能改变数组内容
NSData:bits
NSDate
NSRange:只能为正数范围
UIColor
UIFont: preferredFontForTextStyle
5. @interface A:NSObject
@end
6. @interface A()
@end
@implementation A
@end
7. 对象在堆中,自动处理分配
8. 强指针:只要指向,便自动保存内容=》引用计数
9. @property
10. 对象方法
发送消息[] 方法 . 属性
11.self自身
super父类
12.所有实例变量从0开始
13.NSLog
14:init:
{
if (self = [super init]) {..} return self;
}
15. id:泛型,可以指向任何对象
16.description:类似toString
17.若只通过指针引用某类,可以用@class A;继承:必须import
18.除非名字里含有copy,否则返回指针
19. 初始化
[[xx alloc]init]
[[xx alloc]initWith:1 b:2]
[NSString stringWithFormat:@“%d”, 42]
20.id不会产生警告,会crush
NSString* 和id一样的,只是可能在编译器进行检查,产生警告
21.KVO:当制定对象的属性修改了,允许对象收到通知的机制
Proxy类观察A
Proxy类:[A AddObserver:self forKeyPath:… ]成为A的观察者
ObserveValueForKeyPath:如何响应变化的消息,当A的被观察属性变动,会调用该方法
22. isKindOfClass
isMemberOfClass
respondsToSelector
23. 协议
@protocol xx<父亲protocol>
@end
NSObject protocol
NSObject类
NSProxy protocol更简单
@interface A:NSObject<xx>
@end
或者@interface A():<xx> 在.m中
24.代码块(类似函数指针)
^(参数列表) {内容}
可以访问与其同时定义的本地变量作为常量(复制并保存变量的状态)
作为变量,需声明_block a = 3;再在block中用
可作为参数
block中的东西都会存一个强指针—>若将block存储,容易产生循环引用
__weak class* c = self —>不会产生循环引用了
25. 多线程(Grad Central Dispatch)
提交代码块或者函数作为线程运行
nonatomic:互斥的getter和setter
方法:
performSelectorInBackground: @selector withObject:nil/xxx
队列:dispatch_async异步调用,dispatch_sync同步调用
dispatch_queue_create
dispatch_get_global_queue
dispatch_get_main_queue
dispatch_get_current_queue
NSOperationQueue:更加可控
26.类别:为现有类提供新方法,类扩展,无需再()中加东西,用于一个类分块实现@interface A(xx/空)
27.委托:一种对象(委托对象1),有另一个类(TableView2)请求执行某些工作
2向1发送消息:(bool) tableView:v shouldSelectRow:r
1告诉2返回值
例子:1Finder,符合一个BrowserDelegate协议
2browser,设Finder为Delegate: browser setDelegate:finder
browser做一些事,调用1的某些方法
28. selector: resondsToSelector:@selector(f1: xx:)
performSelector: withObject:
[array makeObjectsPerformSelector: withObject:]
[btn addTarget:object action:@selector]
29. struct->string
string->struct
30. [NSUserDefault standardUserDefault]
setArray forKey
setDouble forKey
setInteger forKey
setObject forKey
arrayForKey…
synchronize
31 NSAttributeString:不可修改
(NSDictionary*) attributesAtIndex: effectiveRange
可以查找,如果要保存查找的结果,需要copy一份
快捷键
1. control+拖控件:添加时间属性
2. option+点击:help
3.cmd+点击:查看内容
ctrl A:行首
ctrl E:行尾
ctrl T:交换
ctrl D:删除后面的
ctrl K:删除后面的所有
相关文章推荐
- C语言编程在Xcode中Scanf 输入跳过以及清空键盘缓冲区总结
- Xcode各版本的发布时间以及区别的简要总结
- 常用Xcode文档位置,修改Xcode项目模板地址总结,以及常用地址
- C#静态构造函数及静态变量学用法总结以及例子
- 对字符数组,字符指针,字符串常量以及其sizeof的一些总结
- D-Day +21 of .NET 总结+反省,以及计划。这个学期前作未有的充实。
- 关于DELPHI中的类对象以及类指针简单探讨总结。
- 关于javaMail中标题以及发件人乱码的问题总结
- 关于Oracle数据库的用户对象配置以及数据镜像的总结
- 总结:黑盒测试、白盒测试以及灰盒测试
- ASP.NET2.0文件上传以及图片处理总结篇 [转]
- 关于Oracle数据库的用户对象配置以及数据镜像的总结--转载于项目组周朝勇笔记
- 对itext导出PDF的一些小总结,以及ireport中生成中文PDF
- 关于gcc、glibc和binutils模块之间的关系,以及在现有系统上如何升级的总结
- 关于字符集--总结,补遗以及问题
- PPC backup程序的概览以及相应技术总结
- hotmail 升级以及 blog 总结
- 最近工作中犯的一些错误,以及总结的体会
- 总结 重复提交、重复刷新、防止后退的问题以及处理方式
- 创建字体以及文本控件显示的总结