1. 通过在NSLog调用的格式字符串忠使用格式符号%o,可在终端上用八进制显示整型数。在这用情况下,用八进制显示的值不带有前导0,而格式符号%#0将在八进制值的前面显示前导0.
2. 如果整型常量以0和字母x(无论大小写)开头,那么这个值都将用十六进制计数法来表示。如要给名为rgbColor的整型常量指派十六进制的值FFEF0D,可以使用一下语句:
rgbColor = 0XFFEF0D;
格式符号%x将用十六进制格式显示一个值,不带前导0x,并用a到f之间的小谢字符表示。要使用前导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 *类似。-(id)newObject: (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循环,每次循环都向这个枚举器请求它的下一个对象:nextObject。nextObject返回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];