我回来了笔记4

./ 表示当前文件夹

获取info。plist文件
[NSBundle mainBundle].infoDictionary;

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

打印宏(debug版本下才执行CZLog打印)

#ifdef DEBUG

#define CZLog(…) NSLog(__VA_ARGS__)

#else

#define CZLog(..)

#endif


#ifdef    __OBJC__		(OC文件才)
		
#endif

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

Objective-C里面既有实例方法也类方法。类方法(Class Method) 有时被称为工厂方法(Factory Method)或者方便方法(Convenience method)。工厂方法的称谓明显和一般意义上的工厂方法不同,从本质上来说,类方法可以独立于对象而执行,类方法有的时候被称为静态方法。是不需要实例化对象就可以调用的方法。
成员方法,必须通过实例化的对象调用

注意点一:类方法
1,类方法可以调用类方法。
2,类方法不可以调用实例方法,但是类方法可以通过创建对象来访问实例方法。
3,类方法不可以使用实例变量。类方法可以使用self,因为self不是实例变量。
4,类方法作为消息,可以被发送到类或者对象里面去(实际上,就是可以通过类或者对象调用类方法的意思)。
注意点二:self的规则
1,实例方法里面的self,是对象的首地址。
2,类方法里面的self,是Class.
尽管在同一个类里面的使用self,但是self却有着不同的解读。在类方法里面的self,可以翻译成class self;在实例方法里面的self,应该被翻译成为object self。在类方法里面的self和实例方法里面的self有着本质上的不同,尽管他们的名字都叫self。

类方法创造的对象要不要用release释放?
答 不需要 这个对象被放到自动释放池中

对象的初始化:ClassName *obj = [[ClassName alloc] init]
OC中以消息机制传递信息,发送alloc消息给类分配内存空间,发送init消息生成对象,指针指向对象本身。

在+方法里面self就是类, 在-方法里面就是实例. -方法里面的self是不能调用+方法的.

IOS实例方法和类方法的区别

类方法和实例方法 的区别
1:实例方法是— 类开头是+ 实例方法是用实例对象访问,类方法的对象是类而不是实例,通常创建对象或者工具类。
在实例方法里,根据继承原理发送消息给self和super其实都是发送给self
在类方法里面self是其他的类的类方法,在类方法中给self发送消息只能发类方法self是类super也是
什么时候用类方法,要创建一个实例时候获取一个共享实例,或者获取关于类的一些共有信息

2.类方法(class method)和实例方法(instance method)。类方法被限定在类范围内,不能被类的实例调用(即脱离实例运行)。alloc就是一种类方法。实例方法限定在对象实例的范围内(即实例化之前不能运行)。init就是一种实例方法,被alloc方法返回的对象实例调用。

————————————————————————
使用Segue跳转页面


[self performSegueWithIdentifier:@"mainshow1" sender:self];

当需要顺传值时,重写默认会调用的这个方法
- (void) prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
    if ([[segue identifier] isEqualToString:@"searchcontact"])
    {
        SelectOnlineContactViewController *selectOnline = [segue destinationViewController];
        selectOnline.TranferPhone =self.TranferPhone;
    }
}

需要逆传值时候,还可以在里面设置代理。
————————————————————————————-

1、- (void)viewDidLoad执行完后会执行- (void)viewWillLayoutSubviews,- (void)viewDidLayoutSubviews
2、当在self.view上的子控件的高度或者宽度改变时,会先执行- (void)viewWillLayoutSubviews,- (void)viewDidLayoutSubviews,然后执行子控件中的- (void)layoutSubviews。最后调用drawRect

每次當視圖更新、旋轉、更動或是 bounds change 時就會呼叫 viewDidLayoutSubviews

一、layoutSubviews
当一个视图“认为”应该重新布局自己的子控件时,它便会自动调用自己的layoutSubviews方法,在该方法中“刷新”子控件的布局;
不能直接调用这个方法。如果强制刷新布局,请调用 setNeedsLayout,如果想马上刷新界面,请调用layoutIfNeeded
setNeedsLayout
标记为需要重新布局,异步调用layoutIfNeeded刷新布局,不立即刷新,在下一轮runloop结束前刷新,对于这一轮runloop之内的所有布局和UI上的更新只会刷新一次,layoutSubviews一定会被调用。
layoutIfNeeded
如果有需要刷新的标记,立即调用layoutSubviews进行布局(如果没有标记,不会调用layoutSubviews)。

drawRect函数:在这个方法中才能获取到正确的上下文
1rect参数的含义
当前view的bounds

2.drawRect什么时候调用
1) view第一次显示的时候调用
2) view需要进行重绘的时候调用

3 如何重绘
调用 setNeedsDisplay

——————————————————————————————-

懒加载里面就写下划线

self 是get set 方法的下划线 会再执行一遍懒加载(可能有影响也可能没有影响)

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

object_setClass(<#id _Nullable obj#>, <#Class _Nonnull __unsafe_unretained cls#>)
将一个对象设置为别的类类型
————————————————————————————————————

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值