OC基本对象类型
来源:互联网 发布:淘宝怎样找货源 编辑:程序博客网 时间:2024/06/12 21:45
//NSNumber的使用
创建一个NSNumber对象
NSNumber *monthNumber = [NSNumbernumberWithInt:10];//使用类方法创建
NSNumber *lengthNumber =[ [NSNumber alloc]initWithFloat:10.8];//使用实例方法创建
//还原成基本数据类型
int month = [monthNumber intValue];
float length = [lengthNumber floatValue];
//NSString的使用
//创建一个字符串常量
NSString *string1 = @”这是一个字符串常量”;
//创建一个空的字符串
NSString *string2 = [[NSString alloc]init]; //实例方法
NSString *string3 = [NSString string]; //类方法
//创建一个字符串创建的实在常量区,不在堆区
NSString *string4 = [[NSString alloc]initWithString:@”abc”];
NSString *string5 = [NSStringstringWithString:@”abc”];
//创建一个格式化的字符串创建在堆区
NSString *string6 = [[NSString alloc]initWithFormat:@”abc”];
NSString *string7 = [NSStringstringWithFormat:@”abc”8];
//比较字符串
//以下输出为same(比较的是内容)
If (string4 isEqualToString:string5){
NSLog(@”same”);
}else{
NSLog(@”different”);
}
//以下输出为same(比较的是是否为同一个指针地址)
//string6和string7创建在常量区,所以指向的同一块的内存地址
If (string6 == string7){
NSLog(@”same”);
}else{
NSLog(@”different”);
}
//以下输出为same(比较的是内容)
If (string6 isEqualToString:string7){
NSLog(@”same”);
}else{
NSLog(@”different”);
}
//以下输出为defferent(比较的是是否为同一个指针地址)
//string6和string7创建在堆区,所以指向的不同的内存地址
If (string6 == string7){
NSLog(@”same”);
}else{
NSLog(@”different”);
}
//比较字符串大小
NSString *string8 = [[NSString alloc]initWithFormat:@”a”];
NSString *string9 = [[NSString alloc]initWithFormat:@”b”];
NSComparisonResult result = [string8caseInsensitiveCompare:string9];
//NSComparisonResult是一个枚举类型
//打印出来result是-1,表示升序。
//字符串长度
[string8 length];
//字符串对象的转换
NSString *string10 = @”2.46”;
NSLog(@”%f”, [string floatValue]);
//字符串的大小写
NSString *string11 = @”hello world”;
NSLog(@”upper:%@”, [string11uppercaseString]);//转换为大写HELLO WORLD
NSLog(@”lower:%@”, [string11lowercaseString]);//转换为小写hello world
NSLog(@”capital:%@”,[string11capitalcaseString]);//首字母大写Hello World
//字符串转换成数组
NSString *string12 = @”abc bcd xyz”;
NSArray *array = [string12componentsSeparatedByString:@” ”];//以空格为分割线
NSLog(@”array : %@”, array);//打印出abc bcd xyz
//字符串的截取
NSString *string13 = [NSStringstringWithFormat:@”abcdefg”];
//从字符串的开头一直截取到指定的位置
NSString *string14 = [stringsubstringToIndex:2];//打印出ab
NSString *string15 = [stringsubstringFromIndex:2];//打印出cdefg
//根据范围截取
NSRange range;
range.location = 4;
range.length = 2;
NSString *subString3 = [string13substringWithRange:range];//打印出ef
//字符串的拼接
NSString *string16 = @”abc”;
NSString *string17 = @”xyz”;
NSString *appString1 = [[NSString alloc]initWithFormat:@”%@%@”, string16, string17];
NSString *appString2 = [string16stringByAppendFormat:@”%@”, string17];
NSString *appString2 = [string16stringByAppendString, string17];
//查询字符串对象
NSString *link = @”asdastarget=_blankddasd”;
NSRange range = [link rangeOfString@”target=_blank”];
If (range.location !=NSNotFound){//NSNotFound为整形最大值
NSLog(@”string 找到了”);
}
//NSMutableString的使用
NSMutableString *mutableString1 =[[NSMutableString alloc] initWithFormat:@”abc”];
//插入
[mutableString1 insertString:@”xyz”atIndex:3];//打印出abcxyz
//替换
[mutableString1replaceCharactersInRange:NSMakeRange(0, 3) withString:@”efg”];//打印出efgxyz
//删除
[mutableString1deleteCharactersInRange:NSMakeRange(0,3)];//打印出xyz
//NSArray的使用
//数组的创建
//类方法
NSArray *array1 = [NSArrayarrayWithObject:@”One”];
NSArray *array2 = [NSArrayarrayWithObjects:@”One”, @”Two”, nil];
NSArray *array3 = [NSArrayarrayWithArray:array2];
//实例方法
NSArray *array4 = [[NSArray alloc]initWithArray:array1];
//获取数组中元素的个数和访问
Int count = [array2 count];
//访问元素的内容
NSString *string1 = [array2 objectAtIndex:1];//Two
//追加数组中的内容
NSArray *array5 = [array2 arrayByAddObject:@”end”];
//用指定的字符串将数组中的元素连接起来
NSString *string2 = [array5componentsJoinedByString:@”,”];//One,Two,end
//数组中是否有某对象
BOOL isContain = [array5 containObject:@”end”];
//查询指定有个对象的位置
NSInteger index = [array5 indexOfObject:@”end”];返回2
//NSMutableArray的使用
NSMutableArray *mutableArray1 =[/NSMutableArray array];
NSMutableArray *mutableArray2 =[/NSMutableArray arrayWithCapacity:5];
NSMutableArray *mutableArray3 =[/NSMutableArray arrayWithObjects:@”One”,@”Two”,nil];
//增加
[mutableArray3 addObject:@”Three”];
//插入
[mutableArray3 insertObject:@”Three”atIndex:2];
//删除
[mutableArray3 removeLastObject];
[mutableArray3 removeObjectIndex:3];
NSMutableArray*mutableArray3=[NSMutableArrayarrayWithObjects:@”One”,@”Two”,@”Three”nil];
NSArray *deleteArray = [NSArray arrayWithObject:s@”One”,@”Two”,nil];
[mutableArray3removeObjectInArray:deleteArray];//打印mutableArray3只剩Three
//替换
[mutableArray3 replaceObjectAtIndex:0withObject:”replace”];
//NSDictionary的使用
NSDictionary *dic1 = [NSDictionarydictionaryWithObject:@”value” forKey:@”k1”];
NSDicrionary *dic2 = [NSDictionarydictionaryWithObjectsAndKeys:@”v1”, @”k1”, @”v2”, @”k2”, nil];
NSDictionary *dic3 = [NSDictionarydictionaryWithDictionary:dic1];
//获取字典数量
NSInteger count = [dic2 count];
//获取value
NSString *string = [dic2 objectForKey:@”k2”];//打印v2
//获取所有key
NSArray *keyArray = [dic2 allKeys];
//获取所有value
NSArray *valueArray = [dic2 allValues];
//NSMutableDictionary的使用
NSMutableDictionary *mutableDic =[[NSMutableDictionary alloc] initWithObjectsAndKeys:@”v1”, @”k1”, @”v2”, @”k2”,@”v3”, @”k3”, @”v4”, @”k4”, @”v5”, @”k5”,nil];
NSDictionary *dic4 = [NSDicrionarydictionaryWithObject:@”v6” forKey:@”k6”];
//添加
[mutableDic addEntriesFromDictionary]; //第一种
[mutableDic setValue:@”object” forKey:@”key”];//第二种
//删除
[mutableDic2 removeObjectForKey:@”k4”];
NSArray *keys = [NSArrayarrayWithObjectObjects:@”k1”, @”k2”, @”k3”, nil];
[mutableDic removeObjectsForKeys:keys];
//遍历字典
For (int index = 0; index < [mutableDiccount]; index ++)
{
NSString*object = [[mutableDic objectForKey:[mutableDic allKeys] objectAtIndex:index];
}
//快速枚举
For (id key in mutableDic){
NSString*object = [mutableDic objectForKey:key];
}
//使用枚举类型
NSEnumerator *enumerator = [mutableDickeyEnumerator];
id key;
while (key = [enumerator nextObject]){
idobject = [mutableDic objectForKey:key];
}
//NSSet的使用
NSSet *set1 = [NSSet setWithObjects:@”1”, @”2”,nil];
NSSet *set2 = [NSSet alloc]initWithObjects:@”3”, @”4”, @”2”, nil];
//获取count
Int count = [set2 count];
//转化为数组
NSArray *objects = [set1 allObjects];
//获取任意一个对象
id object = [set2 anyObject];
//是否包含某个元素
BOOL isContain = [set2 containObject:@”1”];
//集合间是否存在交际
BOOL isIntersect = [set1 intersectsSet:set2];
//是否匹配
BOOL isEqual = [set1 isEqualToSet:set2];
//是否是一个集合的子集
BOOL isSub = [set1 isSubsetOfSet:set1];
//NSMutableSet的使用
NSMutableSet *set1 = [MSMutableSet set];
NSMutableSet *set2 = [NSMutableSetsetWithObjects:@”1”, @”2”,nil];
NSMutableSet *set3 = [NSMutableSetsetWithObjects:@”a”. @”2”, nil];
//集合2减去集合3中的元素,元素2最后元素只有一个,且为1
[set2 minusSet:set3];
//集合2与集合3中的元素,集合2最后的元素只有一个,且为2
[set2 intersectSet:set3];
//集合2与集合3的元素的并集,集合2最后元素只有3个,且为1,2,a
[set1 unionSet:set3];
//将空集合1设置为集合3中的内容
[set1 setSet:set3];
//根据数组的内容删除集合中的对象
[set2 addObjectsFromArray:array];
[set2 removeObject:@”1”];
[set2 removeAllObjects];
IOS之NSArray 中调用的方法详解(1)
下面的例子以
NSArray *array = [NSArray arrayWithObjects:@"wendy",@"andy",@"tom",@"jonery",@"stany", nil];
1、获取数组中总共有多少个对象。
- (NSUInteger)count;
NSLog(@"%d",[array count]); 2
2、获取数组中下标对应的元素对象.(下标是从0开始)
- (id)objectAtIndex:(NSUInteger)index;
3、在当前数据中追加一个新的对象,并且返回一个新的数据对象(新的数组对象和被追加的对象,是两个不同的数组对象)。
- (NSArray *)arrayByAddingObject:(id)anObject;
4、在当前的数组中追加一个新的数据,并且返回一个新的数组对象。
- (NSArray *)arrayByAddingObjectsFromArray:(NSArray *)otherArray;
5、使用当前的数组生成一个字符串,新生成的字符串使用提供的separator 字符进行分割。
- (NSString *)componentsJoinedByString:(NSString *)separator;
[array compontsJoinedByString:@","];
运行结果: wendy,andy,tom,jonery,stany
6、检测数据中是否包含指定的对象元素
- (BOOL)containsObject:(id)anObject;
[array containsObject:@"tom"]; YES
7、使用当前的数组生成字符串。可以重写description 改变生成的字符串。相当于java 中的toString 方法。
- (NSString *)description;
运行结果
(
wendy,
andy,
tom,
jonery,
stany
)
8、根据设置的locale 进行连接数组
- (NSString *)descriptionWithLocale:(id)locale;
- (NSString *)descriptionWithLocale:(id)locale indent:(NSUInteger)level;
9、两个数组的第一个元素是否相同,如果相同,则返回 数组中,第一个元素的字符串,反之,返回null 对象
- (id)firstObjectCommonWithArray:(NSArray *)otherArray;
10、 从数组中获取 NSRange 对象的数据存放到objects 中,NSRange 的数据标示从location,开始后面length 个数据
- (void)getObjects:(id__unsafe_unretained [])objects range:(NSRange)range;
NSArray *array = [NSArray arrayWithObjects:@"wendy",@"andy",@"tom",@"jonery",@"stany",@"张山名称",@"asdta", nil];
NSRange range = NSMakeRange(1, 5);
id *objects;
objects = malloc(sizeof(id) * range.length);
[array getObjects:objects range:range];
for(int i = 0; i < range.length; i++){
NSLog(@"%@",objects[i]);
}
free(objects);
运行的结果
andy
tom
jonery
stany
11、 判断制定的anObject 对象是否存在数组中如果存在返回,对象所在的下标
- (NSUInteger)indexOfObject:(id)anObject;
如果不存在,返回的NSUInteger 与 NSNotFund 相同
NSUIndex index = [array indexOfObject:@"stan"];
if(index == NSNotFound)
{
对象不在数组中
}
11-1、 判断制定的元素,是否在数组中,数组查询的位置,是从range.location 的位置开始,到range.length 的长度结束。
- (NSUInteger)indexOfObject:(id)anObject inRange:(NSRange)range;
如果数据存在,返回指定的下标,如果不存在,则返回NSNotFund 。
实质是使用isEqual 进行比较
12、
同上面两个方法一项,测试指定的对象是否在数组中不同的是,这里使用指针进行比较
- (NSUInteger)indexOfObjectIdenticalTo:(id)anObject;
如果数据存在,返回指定的下标,如果不存在,则返回NSNotFund 。
- (NSUInteger)indexOfObjectIdenticalTo:(id)anObject inRange:(NSRange)range;
13、比较两个数组是否相同 ,数组长度相同,并且相同位置上的元素也相同。
- (BOOL)isEqualToArray:(NSArray *)otherArray;
14、返回最有一个元素,如果一个数组的长度为0 返回的对象为nil
- (id)lastObject;
15、使用数组返回一个 NSEnumerator 对象,这个对象类似与一个指针,可以用来遍历 整个数组 指针从前向后遍历
- (NSEnumerator *)objectEnumerator;
示例如下
NSEnumerator *enu = [array objectEnumerator];
id *obj;
while (obj = enu.nextObject) {
NSLog(@"obj===%@==",obj);
}
16、 返回一个NSEnumerator 对象,这个对象类似一个指针,可以用来遍历真个数据,所不同的是,这个指针,是从后向前遍历。
- (NSEnumerator *)reverseObjectEnumerator;
17、生成一个NSData 的对象,主要是用来进行数组的排序。 在下面的方法中使用这个对象
- (NSData *)sortedArrayHint;
18、 进行数组的排序
- (NSArray *)sortedArrayUsingFunction:(NSInteger (*)(id,id, void *))comparator context:(void *)context;
这个方法类似苹果实现了一个简单的 排序方法。但是实现的规则需要自己进行处理。
类似的方法如下。 首先提供一个 普通的排序算法,函数和c 的方法类似
NSInteger sortType(id st,id str,void *cha)
{
NSString *s1 = (NSString *)st;
NSString *s2 = (NSString *)str;
if(s1.length > s2.length)
{
return NSOrderedAscending;
}else if(s1.length < s2.length)
{
return NSOrderedDescending;
}
return NSOrderedSame;
}
NSArray *array = [NSArray arrayWithObjects:@"wendy",@"andy",@"tom",@"test", nil];
NSArray *a = [array sortedArrayUsingFunction:sortType context:nil];
NSLog(@"a=%@",a);
NSArray 为需要排序的数组,返回一个排序完成的数组,再执行osrtedArrayUseingFunction 方法时会,会自动调用上面的sortType 方法,并且,可以按照你
的需要调整上面的规则
19、和上面的方法类似,也是苹果用来进行排序的。所不同的是,需要传入一个NSData 的数据。
- (NSArray *)sortedArrayUsingFunction:(NSInteger (*)(id,id, void *))comparator context:(void *)context hint:(NSData *)hint;
NSData *dat = [array sortedArrayHint];
NSArray *a = [array sortedArrayUsingFunction:sortType context:nil hint:dat];
NSLog(@"a=%@",a);
创建一个NSNumber对象
NSNumber *monthNumber = [NSNumbernumberWithInt:10];//使用类方法创建
NSNumber *lengthNumber =[ [NSNumber alloc]initWithFloat:10.8];//使用实例方法创建
//还原成基本数据类型
int month = [monthNumber intValue];
float length = [lengthNumber floatValue];
//NSString的使用
//创建一个字符串常量
NSString *string1 = @”这是一个字符串常量”;
//创建一个空的字符串
NSString *string2 = [[NSString alloc]init]; //实例方法
NSString *string3 = [NSString string]; //类方法
//创建一个字符串创建的实在常量区,不在堆区
NSString *string4 = [[NSString alloc]initWithString:@”abc”];
NSString *string5 = [NSStringstringWithString:@”abc”];
//创建一个格式化的字符串创建在堆区
NSString *string6 = [[NSString alloc]initWithFormat:@”abc”];
NSString *string7 = [NSStringstringWithFormat:@”abc”8];
//比较字符串
//以下输出为same(比较的是内容)
If (string4 isEqualToString:string5){
NSLog(@”same”);
}else{
NSLog(@”different”);
}
//以下输出为same(比较的是是否为同一个指针地址)
//string6和string7创建在常量区,所以指向的同一块的内存地址
If (string6 == string7){
NSLog(@”same”);
}else{
NSLog(@”different”);
}
//以下输出为same(比较的是内容)
If (string6 isEqualToString:string7){
NSLog(@”same”);
}else{
NSLog(@”different”);
}
//以下输出为defferent(比较的是是否为同一个指针地址)
//string6和string7创建在堆区,所以指向的不同的内存地址
If (string6 == string7){
NSLog(@”same”);
}else{
NSLog(@”different”);
}
//比较字符串大小
NSString *string8 = [[NSString alloc]initWithFormat:@”a”];
NSString *string9 = [[NSString alloc]initWithFormat:@”b”];
NSComparisonResult result = [string8caseInsensitiveCompare:string9];
//NSComparisonResult是一个枚举类型
//打印出来result是-1,表示升序。
//字符串长度
[string8 length];
//字符串对象的转换
NSString *string10 = @”2.46”;
NSLog(@”%f”, [string floatValue]);
//字符串的大小写
NSString *string11 = @”hello world”;
NSLog(@”upper:%@”, [string11uppercaseString]);//转换为大写HELLO WORLD
NSLog(@”lower:%@”, [string11lowercaseString]);//转换为小写hello world
NSLog(@”capital:%@”,[string11capitalcaseString]);//首字母大写Hello World
//字符串转换成数组
NSString *string12 = @”abc bcd xyz”;
NSArray *array = [string12componentsSeparatedByString:@” ”];//以空格为分割线
NSLog(@”array : %@”, array);//打印出abc bcd xyz
//字符串的截取
NSString *string13 = [NSStringstringWithFormat:@”abcdefg”];
//从字符串的开头一直截取到指定的位置
NSString *string14 = [stringsubstringToIndex:2];//打印出ab
NSString *string15 = [stringsubstringFromIndex:2];//打印出cdefg
//根据范围截取
NSRange range;
range.location = 4;
range.length = 2;
NSString *subString3 = [string13substringWithRange:range];//打印出ef
//字符串的拼接
NSString *string16 = @”abc”;
NSString *string17 = @”xyz”;
NSString *appString1 = [[NSString alloc]initWithFormat:@”%@%@”, string16, string17];
NSString *appString2 = [string16stringByAppendFormat:@”%@”, string17];
NSString *appString2 = [string16stringByAppendString, string17];
//查询字符串对象
NSString *link = @”asdastarget=_blankddasd”;
NSRange range = [link rangeOfString@”target=_blank”];
If (range.location !=NSNotFound){//NSNotFound为整形最大值
NSLog(@”string 找到了”);
}
//NSMutableString的使用
NSMutableString *mutableString1 =[[NSMutableString alloc] initWithFormat:@”abc”];
//插入
[mutableString1 insertString:@”xyz”atIndex:3];//打印出abcxyz
//替换
[mutableString1replaceCharactersInRange:NSMakeRange(0, 3) withString:@”efg”];//打印出efgxyz
//删除
[mutableString1deleteCharactersInRange:NSMakeRange(0,3)];//打印出xyz
//NSArray的使用
//数组的创建
//类方法
NSArray *array1 = [NSArrayarrayWithObject:@”One”];
NSArray *array2 = [NSArrayarrayWithObjects:@”One”, @”Two”, nil];
NSArray *array3 = [NSArrayarrayWithArray:array2];
//实例方法
NSArray *array4 = [[NSArray alloc]initWithArray:array1];
//获取数组中元素的个数和访问
Int count = [array2 count];
//访问元素的内容
NSString *string1 = [array2 objectAtIndex:1];//Two
//追加数组中的内容
NSArray *array5 = [array2 arrayByAddObject:@”end”];
//用指定的字符串将数组中的元素连接起来
NSString *string2 = [array5componentsJoinedByString:@”,”];//One,Two,end
//数组中是否有某对象
BOOL isContain = [array5 containObject:@”end”];
//查询指定有个对象的位置
NSInteger index = [array5 indexOfObject:@”end”];返回2
//NSMutableArray的使用
NSMutableArray *mutableArray1 =[/NSMutableArray array];
NSMutableArray *mutableArray2 =[/NSMutableArray arrayWithCapacity:5];
NSMutableArray *mutableArray3 =[/NSMutableArray arrayWithObjects:@”One”,@”Two”,nil];
//增加
[mutableArray3 addObject:@”Three”];
//插入
[mutableArray3 insertObject:@”Three”atIndex:2];
//删除
[mutableArray3 removeLastObject];
[mutableArray3 removeObjectIndex:3];
NSMutableArray*mutableArray3=[NSMutableArrayarrayWithObjects:@”One”,@”Two”,@”Three”nil];
NSArray *deleteArray = [NSArray arrayWithObject:s@”One”,@”Two”,nil];
[mutableArray3removeObjectInArray:deleteArray];//打印mutableArray3只剩Three
//替换
[mutableArray3 replaceObjectAtIndex:0withObject:”replace”];
//NSDictionary的使用
NSDictionary *dic1 = [NSDictionarydictionaryWithObject:@”value” forKey:@”k1”];
NSDicrionary *dic2 = [NSDictionarydictionaryWithObjectsAndKeys:@”v1”, @”k1”, @”v2”, @”k2”, nil];
NSDictionary *dic3 = [NSDictionarydictionaryWithDictionary:dic1];
//获取字典数量
NSInteger count = [dic2 count];
//获取value
NSString *string = [dic2 objectForKey:@”k2”];//打印v2
//获取所有key
NSArray *keyArray = [dic2 allKeys];
//获取所有value
NSArray *valueArray = [dic2 allValues];
//NSMutableDictionary的使用
NSMutableDictionary *mutableDic =[[NSMutableDictionary alloc] initWithObjectsAndKeys:@”v1”, @”k1”, @”v2”, @”k2”,@”v3”, @”k3”, @”v4”, @”k4”, @”v5”, @”k5”,nil];
NSDictionary *dic4 = [NSDicrionarydictionaryWithObject:@”v6” forKey:@”k6”];
//添加
[mutableDic addEntriesFromDictionary]; //第一种
[mutableDic setValue:@”object” forKey:@”key”];//第二种
//删除
[mutableDic2 removeObjectForKey:@”k4”];
NSArray *keys = [NSArrayarrayWithObjectObjects:@”k1”, @”k2”, @”k3”, nil];
[mutableDic removeObjectsForKeys:keys];
//遍历字典
For (int index = 0; index < [mutableDiccount]; index ++)
{
NSString*object = [[mutableDic objectForKey:[mutableDic allKeys] objectAtIndex:index];
}
//快速枚举
For (id key in mutableDic){
NSString*object = [mutableDic objectForKey:key];
}
//使用枚举类型
NSEnumerator *enumerator = [mutableDickeyEnumerator];
id key;
while (key = [enumerator nextObject]){
idobject = [mutableDic objectForKey:key];
}
//NSSet的使用
NSSet *set1 = [NSSet setWithObjects:@”1”, @”2”,nil];
NSSet *set2 = [NSSet alloc]initWithObjects:@”3”, @”4”, @”2”, nil];
//获取count
Int count = [set2 count];
//转化为数组
NSArray *objects = [set1 allObjects];
//获取任意一个对象
id object = [set2 anyObject];
//是否包含某个元素
BOOL isContain = [set2 containObject:@”1”];
//集合间是否存在交际
BOOL isIntersect = [set1 intersectsSet:set2];
//是否匹配
BOOL isEqual = [set1 isEqualToSet:set2];
//是否是一个集合的子集
BOOL isSub = [set1 isSubsetOfSet:set1];
//NSMutableSet的使用
NSMutableSet *set1 = [MSMutableSet set];
NSMutableSet *set2 = [NSMutableSetsetWithObjects:@”1”, @”2”,nil];
NSMutableSet *set3 = [NSMutableSetsetWithObjects:@”a”. @”2”, nil];
//集合2减去集合3中的元素,元素2最后元素只有一个,且为1
[set2 minusSet:set3];
//集合2与集合3中的元素,集合2最后的元素只有一个,且为2
[set2 intersectSet:set3];
//集合2与集合3的元素的并集,集合2最后元素只有3个,且为1,2,a
[set1 unionSet:set3];
//将空集合1设置为集合3中的内容
[set1 setSet:set3];
//根据数组的内容删除集合中的对象
[set2 addObjectsFromArray:array];
[set2 removeObject:@”1”];
[set2 removeAllObjects];
IOS之NSArray 中调用的方法详解(1)
下面的例子以
NSArray *array = [NSArray arrayWithObjects:@"wendy",@"andy",@"tom",@"jonery",@"stany", nil];
1、获取数组中总共有多少个对象。
- (NSUInteger)count;
NSLog(@"%d",[array count]); 2
2、获取数组中下标对应的元素对象.(下标是从0开始)
- (id)objectAtIndex:(NSUInteger)index;
3、在当前数据中追加一个新的对象,并且返回一个新的数据对象(新的数组对象和被追加的对象,是两个不同的数组对象)。
- (NSArray *)arrayByAddingObject:(id)anObject;
4、在当前的数组中追加一个新的数据,并且返回一个新的数组对象。
- (NSArray *)arrayByAddingObjectsFromArray:(NSArray *)otherArray;
5、使用当前的数组生成一个字符串,新生成的字符串使用提供的separator 字符进行分割。
- (NSString *)componentsJoinedByString:(NSString *)separator;
[array compontsJoinedByString:@","];
运行结果: wendy,andy,tom,jonery,stany
6、检测数据中是否包含指定的对象元素
- (BOOL)containsObject:(id)anObject;
[array containsObject:@"tom"]; YES
7、使用当前的数组生成字符串。可以重写description 改变生成的字符串。相当于java 中的toString 方法。
- (NSString *)description;
运行结果
(
wendy,
andy,
tom,
jonery,
stany
)
8、根据设置的locale 进行连接数组
- (NSString *)descriptionWithLocale:(id)locale;
- (NSString *)descriptionWithLocale:(id)locale indent:(NSUInteger)level;
9、两个数组的第一个元素是否相同,如果相同,则返回 数组中,第一个元素的字符串,反之,返回null 对象
- (id)firstObjectCommonWithArray:(NSArray *)otherArray;
10、 从数组中获取 NSRange 对象的数据存放到objects 中,NSRange 的数据标示从location,开始后面length 个数据
- (void)getObjects:(id__unsafe_unretained [])objects range:(NSRange)range;
NSArray *array = [NSArray arrayWithObjects:@"wendy",@"andy",@"tom",@"jonery",@"stany",@"张山名称",@"asdta", nil];
NSRange range = NSMakeRange(1, 5);
id *objects;
objects = malloc(sizeof(id) * range.length);
[array getObjects:objects range:range];
for(int i = 0; i < range.length; i++){
NSLog(@"%@",objects[i]);
}
free(objects);
运行的结果
andy
tom
jonery
stany
11、 判断制定的anObject 对象是否存在数组中如果存在返回,对象所在的下标
- (NSUInteger)indexOfObject:(id)anObject;
如果不存在,返回的NSUInteger 与 NSNotFund 相同
NSUIndex index = [array indexOfObject:@"stan"];
if(index == NSNotFound)
{
对象不在数组中
}
11-1、 判断制定的元素,是否在数组中,数组查询的位置,是从range.location 的位置开始,到range.length 的长度结束。
- (NSUInteger)indexOfObject:(id)anObject inRange:(NSRange)range;
如果数据存在,返回指定的下标,如果不存在,则返回NSNotFund 。
实质是使用isEqual 进行比较
12、
同上面两个方法一项,测试指定的对象是否在数组中不同的是,这里使用指针进行比较
- (NSUInteger)indexOfObjectIdenticalTo:(id)anObject;
如果数据存在,返回指定的下标,如果不存在,则返回NSNotFund 。
- (NSUInteger)indexOfObjectIdenticalTo:(id)anObject inRange:(NSRange)range;
13、比较两个数组是否相同 ,数组长度相同,并且相同位置上的元素也相同。
- (BOOL)isEqualToArray:(NSArray *)otherArray;
14、返回最有一个元素,如果一个数组的长度为0 返回的对象为nil
- (id)lastObject;
15、使用数组返回一个 NSEnumerator 对象,这个对象类似与一个指针,可以用来遍历 整个数组 指针从前向后遍历
- (NSEnumerator *)objectEnumerator;
示例如下
NSEnumerator *enu = [array objectEnumerator];
id *obj;
while (obj = enu.nextObject) {
NSLog(@"obj===%@==",obj);
}
16、 返回一个NSEnumerator 对象,这个对象类似一个指针,可以用来遍历真个数据,所不同的是,这个指针,是从后向前遍历。
- (NSEnumerator *)reverseObjectEnumerator;
17、生成一个NSData 的对象,主要是用来进行数组的排序。 在下面的方法中使用这个对象
- (NSData *)sortedArrayHint;
18、 进行数组的排序
- (NSArray *)sortedArrayUsingFunction:(NSInteger (*)(id,id, void *))comparator context:(void *)context;
这个方法类似苹果实现了一个简单的 排序方法。但是实现的规则需要自己进行处理。
类似的方法如下。 首先提供一个 普通的排序算法,函数和c 的方法类似
NSInteger sortType(id st,id str,void *cha)
{
NSString *s1 = (NSString *)st;
NSString *s2 = (NSString *)str;
if(s1.length > s2.length)
{
return NSOrderedAscending;
}else if(s1.length < s2.length)
{
return NSOrderedDescending;
}
return NSOrderedSame;
}
NSArray *array = [NSArray arrayWithObjects:@"wendy",@"andy",@"tom",@"test", nil];
NSArray *a = [array sortedArrayUsingFunction:sortType context:nil];
NSLog(@"a=%@",a);
NSArray 为需要排序的数组,返回一个排序完成的数组,再执行osrtedArrayUseingFunction 方法时会,会自动调用上面的sortType 方法,并且,可以按照你
的需要调整上面的规则
19、和上面的方法类似,也是苹果用来进行排序的。所不同的是,需要传入一个NSData 的数据。
- (NSArray *)sortedArrayUsingFunction:(NSInteger (*)(id,id, void *))comparator context:(void *)context hint:(NSData *)hint;
NSData *dat = [array sortedArrayHint];
NSArray *a = [array sortedArrayUsingFunction:sortType context:nil hint:dat];
NSLog(@"a=%@",a);
0 0
- OC基本对象类型
- OC判断对象类型
- OC对象类型
- OC中的迭代器 值对象(把基本数据类型转化为对象类型)
- 基本类型包装对象
- OC类和对象-id类型
- Java基本类型与对象
- java对象和基本类型
- 1.基本的对象类型
- 对象,基本类型的比较
- Java基本类型和对象类型 传值
- Java 基本类型 和 对象类型 比较
- java-值传递-基本类型/对象类型
- js判断基本类型&对象类型
- Objective-C中基本数据烦类型与对象数据类型相互转换的方法(OC中NSString的常用API的基础应用3)
- OC中对象类型以及其常用方法
- OC中保存自定义类型对象的持久化方法
- OC 基本数据类型与对象之间的转换方法
- 8种排序算法
- TCP 3次握手模式(3-WAY HANDSHAKE)
- linux下动态库(一)
- poj 1988 Cube Stacking(并查集)
- Erlang:第一个Erlang程序,模块,函数
- OC基本对象类型
- Spring事务配置的五种方式
- C# 抽象工厂
- centos内核升级
- Mysql 选择优化的数据类型
- Android 的 Handler 总结
- 适配器(Adapter)——类对象结构型模式
- webservice示例(java)
- 彻底根除“无法安装64位版本的Office,因为在您的PC上找到了以下32位程序:”的问题