您的位置:首页 > 移动开发 > Objective-C

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:删除后面的所有
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: