美文网首页
iOS小知识点总结

iOS小知识点总结

作者: 春不语 | 来源:发表于2017-06-09 21:12 被阅读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;
    }
    

    相关文章

      网友评论

          本文标题:iOS小知识点总结

          本文链接:https://www.haomeiwen.com/subject/iebfqxtx.html