《Objective-C 2.0程序设计》读书笔记

来源:互联网 发布:淘宝中国质造多少钱 编辑:程序博客网 时间:2024/05/02 02:38

1.     通过在NSLog调用的格式字符串忠使用格式符号%o,可在终端上用八进制显示整型数。在这用情况下,用八进制显示的值不带有前导0,而格式符号%#0将在八进制值的前面显示前导0.

2.     如果整型常量以0和字母x(无论大小写)开头,那么这个值都将用十六进制计数法来表示。如要给名为rgbColor的整型常量指派十六进制的值FFEF0D,可以使用一下语句:

rgbColor = 0XFFEF0D;

格式符号%x将用十六进制格式显示一个值,不带前导0x,并用af之间的小谢字符表示。要使用前导0x显示该值,使用格式字符%#x,如下:

NSLog(“Color is %#x\n,rgbColor;

3.        显示浮点值,可用NSLog转换字符%f

4.        浮点数可以用科学计数法来表示。例如:1.7e4(或者1.7E4)就表示1.7。位于字符e之前的值成为尾数,位于e之后的值成为指数。指数之前可以放正负号,例如:2.25e-3,表示2.25

用科学计数法显示值,应该在NSLog格式字符串忠制定格式字符%e。使用NSLog格式字符串NSLog确定使用常用的浮点计数法还还是使用科学计数法来显示浮点值。这一决定取决于指数的值。如果指数小于-4或者大于5,采用%e表示,否则采用%f表示。

5.          double类型和float类型相似,在float变量所提供的值域不能满足要求时,就要使用double变量。声明为double类型的变量可以存储的位数大概是float类型所在存储的两倍多。注意:显示double类型的格式字符和float类型的格式字符是一样的。

6.          \n’是合法 的字符常量。

7.          id类型  id类型可以存储任何类型的对象,她和c语言忠的void *类似。-idnewObject: (int) type; 声明一个名为newObject的实例方法,具有名为type的整型参数,并有id类型的返回值。Id是默认的类型。因此,+allocInit;就声明了一个返回id类型的类方法。

8.          Objective-C中浮点值和整型值之间的隐式转化的规则

int main(int argc, const char * argv[])

{

 

    @autoreleasepool {

       

        float f1=123.125,f2;

        int i1,i2=-150;

        i1 = f1;//把浮点数赋值给整型数,小数部分被删

        NSLog(@"f1:%f;i1:%i",f1,i1);

       

        f1 = i2;//整型数赋给浮点数,不引起值的改变,做转化

        NSLog(@"i2:%i;f1:%f",i2,f1);

       

        f1 = i2/100;

        NSLog(@"f1:%f",f1);//i2/100做的整型运算,将结果做了变换存储在浮点型变量忠。

       

        f2 = i2/100.0;

        NSLog(@"f2:%f",f2);//做的浮点型运算

       

        f2 = (float)i2/100;//做的浮点型运算

        NSLog(@"f2:%f",f2);

    }

    return 0;

}

 

注意:在Objective-C中,任何处理两个值的运算,如果其中一个值是浮点变量或常量,那么这一运算将作为浮点运算处理。

9.        按位运算 练习中用到了再回过头看。

10.    循环结构、选择结构和C语言用法一样。

11.     数组的定义:                        NSArray *arr = [[NSArray alloc] initWithObjects:@"Me",@"Myself",@"I",nil];

NSMutableArray *mutable = [[NSMutableArray alloc] init];      

12.    枚举 NSEnumerator)
遍历数组每个索引处的对象,你可以编写一个0[array count]的循环,而NSEnumerator用来描述这种集合迭代运算的方式。
通过objectEnumerator向数组请求枚举器,如果想从后向前浏览集合,可使用reverseObjectEnumerator方法。在获得枚举器后,可以开始一个while循环,每次循环都向这个枚举器请求它的下一个对象:nextObjectnextObject返回nil值时,循环结束。

void print( NSArray *array ) {

    NSEnumerator *enumerator = [array objectEnumerator];

    id obj;

          

    while ( obj = [enumerator nextObject] ) {

        printf( "%s\n", [[obj description] cString] );

  }

}

 

13.              [mutable sortUsingSelector: @selector( caseInsensitiveCompare: )];

/*数组元素排序,升序。 @selector是查找当前类的方法,而[object @selector(方法名:方法参数..) ] ;是取object对应类的相应方法*/

14.              [[monthNames  objectAtIndex:i] cString])

        objectAtIndex: i

只适用于集合(数组)。可根据索引获取对象。如:
NSArray *array=

[NSArray arrayWithObjects:@"zhangsan",@"lisi",@"wangwu",nil];
NSLog("%@",[array objectAtIndex:0]);
这时输出的值是'zhangsan' .可以看出objectAtIndex 消息是从下标0开始。

15.              向数组中添加元素: [mutable addObject:@"Three"];

16.                 NSMutableDictionary添加元素:[mutable setObject:@"Tom" forKey:@"tom@jones.com"];

17.              NSMutableDictionary  *glossary = [NSMutableDictionary dictionary];

0 0
原创粉丝点击