zoukankan      html  css  js  c++  java
  • 代码书写规范(摸索、试行)

    1、类的对外数据接口,声明为属性变量。其它为成员变量。

    2、成员变量一律写在.m文件内。其中全局变量可以根据相应的作用起名字。局部变量,一律不起任何名字,仅用其类型的缩写代替,如buttonlabelview等,在注释中标明这个变量的作用和意义。次意义在于降低代码的复杂度,提高可读性,同时强制程序员写注释,而不是编造那些乱七八糟、半中半洋的变量名糊弄事。

     3、一个类的纯成员变量,请以“ m_ ”开头,方便管理。(意为my_)

    //////////////////////// 一种代码风格,我比较倾向的//////////////////

    1. @interface MyClass:NSObject{           MyObjecct *_object; } @property(nonamtic, retain) MyObjecct *object; @end

    @implementatin MyClass @synthesize object=_object; 然后我在该类的.m文件中全部使用_object去操作,不用self.object去操作(虽然可以用)。 在其它类中,才用self.object去操作。

    问:这样是比较规范的声明属性和成员变量吗?而且对成员变量和属性的使用也是比较规范的吗?还有就是如果我这样写的话,在该类的.m文件中 _object  = [Myobject alloc] init];给他赋空间后,我操作完它后,需不需要在后面马上release,还是直接在dealloc中release; 也就是说,这种情况下,成员变量是不是不需要在该类的.m实现文件中release,不关在各个方法中alloc了多少次,只需要在dealloc中release一次就好。

    2.如果这样写呢? @interface MyClass:NSObject{           MyObjecct *object; } @property(nonamtic, retain) MyObjecct *object; @end

    @implementatin MyClass @synthesize object; 问:那还有没有必要定义成员变量?直接用属性不是能够全搞定吗?就在本类的.m文件中全部用self.object。(代码规范里面有没有规定,申明成了属性,就不用申明为成员变量了呢?) 如果在该类实现的.m文件中使用了self.object = [Myobject alloc] init];的话,用完后是不是得立即release,然后还得在dealloc中再release一次。

    回答:

    self.object = [Myobject alloc] init]autorelease] 然后dealloc里面再release一次,这样才算正常操作

     _object  = [Myobject alloc] init] 创建的对象是全局的,所以只能在dealloc里面进行释放

     感觉在本类中用— 在外部打点调用不是太规范,但是这样操作也不会有什么问题(个人感觉)

    参考:http://www.w3c.com.cn/属性和成员变量的dealloc疑问

    ///////////////////////////////////////////////////

    //////////////////////////  下面也是我的风格   //////////////////////////

    虽然我建议以属性的形式声明所有成员,但是有些人更喜欢实例变量,尤其是私有实例变量。可以在@implementation这一块中声明私有实例变量,如下列代码所示:

    1
    2
    3
        @implementation Something {
          NSString *_name;
        }
    

    这段代码在@implementation块中声明私有实例变量,而不是在公有的头文件中声明,这是一种非常好的封装方式,也使得头文件更易读。跟其他变量一样,ARC也会自动对实例变量进行保留和释放。实例变量的默认存储类型是strong,但可以使用如下代码声明weak实例变量:

    1
    2
    3
        @implementation Something {
          __weak NSString *name;
        }

    //////////////////////////  //////////////////////////

  • 相关阅读:
    Spring shiro学习(二)
    Spring shiro学习(一)
    Redis/zookeeper/ActiveMQ在Mac下的安装配置
    Mac下利用brew安装Intellij IDEA
    MySQL服务相关
    Ruby变量常量
    Web性能测试工具:Siege安装&使用简介
    无限级分类功能实践
    Ubuntu Bash and Dash
    安装好的虚拟机,外部通过ssh工具连接,报connection failed
  • 原文地址:https://www.cnblogs.com/ygm900/p/3662462.html
Copyright © 2011-2022 走看看