已经学习了很长时间的ios 但是发现对于数字,字符串 和集合 这些零碎的东西账务的并不太好 今天就干脆整理一下 就当是做个小的笔记吧 如果哪一点总结的不好或者是你认为写的太过简略 还请各位大虾们给出意见 多多益善哟
一、数字对象
我们所讨论过的数字类型int型 float型和long型,他们都不是对象,不能像他们发送消息。使用Foundation的对象NSArray,可以设置一个用于存储值的数组,这些值必需是对象,因此不能将任何基本类型直接存储到这些数组中。要存储任何基本数据类型,可以使用NSNumber类根据这些数据类型来创建对象
例如:
NSNumber *myNumber,*floatNumber,*intNumber;
intNumber = [NSNumber numberWithInter:100];
myNumber=[NSNumber numberWithLong:0xabcdef];
myNumber =[NSNumber numberWithChar:'X'];
floatNumber=[NSNumber numberWithFloat:100.00];
NSNumber的创建方法和检索方法
创建和初始化类方法 numberWithChar numberWithInteger numberWithFloat
初始化实例方法 initWithChar initWithInteger initWithFloat
检索实例方法 charValue integerValue floatValue
在if语句中,消息表达式[intNumber isEqualToNumber:floatNumber] 使用isEqualToNumber:方法根据数值比较两个NSNumber对象,该程序测试返回的Boolean值以查看这两个值是否相等 可用compare:方法来测试一个数执行的值是否在数值上小于,等于或大于另一个值 消息表达式【intNumber compare:myNumber】在intNumber中的值小于myNumber中的值时,返回值NSOrderedAscending,如果两个数相等返回值为NSOrderedSame,如果intNumber中的值大于myNumber中的值时,返回值NSOrderedDescending 在NSObject.h中已经定义了这些返回值
所有的数字对象都必须是新创建的所以创建myNumber 必须用myNumber = [[NSNumber alloc]initWithInt:1000]; 使用完后 用[myNumber release];来释放
二、字符串对象
1. stringWithString 生成新的字符串
NSString *res = [NSString stringWithString:str1]; 这里的意思是 对字符串内容的复制 而不是对内存中的同一字符串的引用。既str1和res是不同的字符串对象
res = str1 这仅仅创建了内存中同一对象的另一个引用
2.stringByAppendingString 用来连接两个字符串
[sr1 stringByAppendingString:str2]; 创建了一个新对象,这个由str1之后是str2的字符组成,返回结果 但原字符串对象str1和str2没有改变
3.比较字符串是否相等 isEqualToString compare caseInsensitiveCompare
isEqualToString:方法来检测两个字符串是否相等 既 是否包含相同的字符
compare:如果要对字符串数组进行排序 与前面来比较两个NSNumber对象的compare:方法相似 :如果从词汇上说第一个字符串小于第二个字符串,则结果
是NSOrderedAscending,如果两个字符串相等返回值为NSOrderedSame,第一个字符串大于第二个字符串 返回值NSOrderedDescending
caseInsensitiveCompare 如果不想执行大小写敏感的比较