代码书写规范(摸索、试行)

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

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

 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;
    }

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

 

 

 

 

 

 

 

posted @ 2014-04-14 15:43  ygm900  阅读(276)  评论(0编辑  收藏  举报