基础入门

一、变量命名规范: 

1:给变量命名时 ,要给变量一个很明确的描述。达到“见名知意”的效果。如不能使用i或者是x来命名。

2: 避免创建一些模糊的名称。

3: 命名时,下划线最多只出现一次,多个单词之间不用多个下滑线。

4:给函数命名时,如果函数名由多个单词组成,函数名的第一个单词的首字母要小写,其余单词的首字母要大写。 

 二、while循环

    可以使用如下代码来使某一个条件达成时退出循环。 

         1 NSInteger count= 0;

 2     while (isquit == NO) {
 3         if (count<10) {
 4             count++;
 5         }
 6         else {
 7             isquit = YES;
 8         }
 9         NSLog(@"isquit is %@",isquit==YES ? @"yes":@"NO");
10     }

三:const char *与char *

C函数形参里面为何要用:const char *inputString
保护实参指针指向的数据不被意外改写。 
const char *inputString;//定义指向常量的指针 
指针本身地址值可以增减,也可以给指针更换指向的常量,但是指向的内容有常量性质,指向的内容不能被更改。即: 
inputString++;//这是可以的。 
(*inputString)++;//这是禁止的。
 

还有一点就是const char*初始化的值不可以赋值给char *.相反char *初始化的值可以赋值给const char *这个变量。

   如下代码将产生警告:

    const char *ab ;
    char *cd;
    ab= "this is my name ";
    cd = ab;

   why:const char *初始化值不能赋值给char *。

   原因: char *变量的值可以改变,而 const char*变量的值不可以改变,如果将const char *的值赋值给char *,若char *的值发生改变,那么意味着const char *变量的值也会改变。这不符合常理。

   实践: 

    
1  const char *instring = "this is my name";
2     char *in;
3     in = instring;
4     in = "my name is wtq";
5     printf("in is %c",*in);
6     instring++;
7     printf("instring:%c",*instring);  
    结果:
 printf("in is %c",*in);输出的结果为“m”,说明编译器虽然产生警告,但是还是可以运行的。

 

 四、方法声明时,可以使用没有额外名称参数的方法:如下:

      -(UIImage *) isImage:(UIImage *)image :(UIImage *)secondImage;

      

     -(UIImage *) isImage:(UIImage *)image secondImage:(UIImage *)secondImage;

 

     以上两种命名方法都可行,但是第二种方法的声明比较好。第一种方法容易造成混淆。 第一种方法没有达到见名知意的效果。

 

五、 objective-c与c++重载的区别:

    C++: 当方法重载时,要保证方法具有不同数量的参数或者至少有一个参数具有不同的数据类型。

    objective-c:当方法重载时,要保证方法具有不同数量的参数或者至少有一个参数名称不一样,但数据类型可以一样。 

   

六、synthesize的作用

    该变量的作用是: 该关键字让编译器自动为属性生成setter和getter方法。

 

七、属性中的readonly的作用域

    带有“readonly”的属性若需要赋值时,必须在自身类进行赋值,外部是访问不了的。在类外部进行赋值的话,将会导致报错。 

 

 

 

 

  

posted on 2012-08-06 15:57  wtq  阅读(261)  评论(0编辑  收藏  举报