iOS小知识点总结

2017-06-09  本文已影响5人  春不语

iOS中的self访问对象属性和下划线实例变量的区别

具体见:[告诉你使用self.var 和 _var的区别][1]
[1]:http://ios.jobbole.com/84456/

self.是对属性的访问,而下划线是对实例变量的访问。属性用@property关键字声明,它包含了对实例变量读写的get、set方法。在iOS5以后使用@property声明属性时,编译器会自动(@sytheszie var = _var)为我们生成对应的一个以下划线加属性名的实例变量,还有其对应的getter、setter,下划线是包括在变量名里的。


在.m文件中可以通过下划线来访问实例变量,但是getter、setter不会被调用,而来自外部的访问则需要通过getter、setter。


重写get/set方法时不能使用self,不然会进入死循环,因为self访问属性时会触发属性个get/set方法。


一般在开发过程中,在对象内部读取值时,直接通过实例变量来访问(下划线),设置值时,使用属性的setter来赋值(self.)。

@optional和@required的区别

在定义协议时,使用@optional的方法不是必须实现的方法,可选,而使用@required的方法是必须要实现的。

纯代码定义导航栏

在AppDelegate.m文件中添加如下代码:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
    
    _window = [[UIWindow alloc]initWithFrame:[UIScreen mainScreen].bounds];
    _window.backgroundColor = [UIColor whiteColor];
    //自定义的主页
    MainViewController *mainVC = [[MainViewController alloc]init];
    UINavigationController *nav = [[UINavigationController alloc]initWithRootViewController:mainVC];
    _window.rootViewController = nav;
    [_window makeKeyAndVisible];
    
    return YES;
}
上一篇下一篇

猜你喜欢

热点阅读