#import <Foundation/Foundation.h>
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;
}
int main(int argc, const char * argv[]) {
@autoreleasepool {
NSArray *arr = [NSArray alloc];
arr = [arr init];//数组的创建与初始化
NSLog(@"%@",arr);
NSArray *arr1 = [[NSArray alloc] initWithObjects:@"abc", nil];//用一个对象初始化
NSLog(@"%@",arr1);
NSArray *arr2 = [[NSArray alloc] initWithObjects:@"abc",@"def",@"abc", nil];//用多个对象初始化
NSLog(@"%@",arr2);
NSArray *arr3 = [[NSArray alloc] initWithArray:arr1];//从已有数组初始化
NSLog(@"%@",arr3);
NSLog(@"%lu",[arr2 count]);//返回数组的成员数
NSLog(@"%@",[arr2 objectAtIndex:1]);//返回数组某个下标的成员
NSLog(@"%@",[arr2 firstObjectCommonWithArray:arr2]);//返回数组的第一个成员
NSLog(@"%@",[arr2 lastObject]);//返回数组的最后一个成员
[arr2 arrayByAddingObject:@"ghi"];//向数组添加元素,但是不可变数组成员数不能增加
NSLog(@"%@",arr2);
[arr2 arrayByAddingObjectsFromArray:arr1];
NSLog(@"%@",arr2);
NSLog(@"%@",[arr2 componentsJoinedByString:@"123"]);//以某个分隔符把数组连接成字符串
NSString *str = @"123,456,789";
NSLog(@"%@",[str componentsSeparatedByString:@","]);//以某个分隔符把字符串分割成数组
if ([arr2 containsObject:@"abc"])//判断一个数组中是否存在@"xxx"或另一个数组,数组必须地址和内容都相同
{
NSLog(@"%@",arr1);
}
NSArray *arr4 = [arr2 objectAtIndex:2];
if ([arr2 containsObject:arr4])
{
NSLog(@"%@",arr4);
}
NSLog(@"%@",[arr2 description]);//对数组中对象的描述,可以输出数组中的对象(待进一步确定)
//NSLog(@"%@",[arr2 descriptionWithLocale:arr1]);
NSLog(@"%@",[arr2 firstObjectCommonWithArray:arr1]);//两个数组的第一个元素是否相同,如果相同,则返回 数组中,第一个元素的字符串,反之,返回null 对象
if (NSNotFound == [arr2 indexOfObject:@"abc"])//判断制定的anObject 对象是否存在数组中如果存在返回,对象所在的下标
{
NSLog(@"不再数组中!");
}
NSLog(@"%lu",(unsigned long)[arr2 indexOfObject:@"def"]);
NSArray *arr5 = [[NSArray alloc] initWithObjects:@"abc",@"def",@"abc", nil];
if ([arr2 isEqualTo:arr5])//比较两个数组是否相同 ,数组长度相同,并且相同位置上的元素也相同。
{
NSLog(@"YES!");
}
NSEnumerator *enu = [arr2 objectEnumerator];//使用数组返回一个 NSEnumerator 对象,这个对象类似与一个指针,可以用来遍历 整个数组 指针从前向后遍历
id obj;
while ((obj = enu.nextObject))
{
NSLog(@"+%@",obj);
}
enu = [arr2 reverseObjectEnumerator];//返回一个NSEnumerator 对象,这个对象类似一个指针,可以用来遍历真个数据,所不同的是,这个指针,是从后向前遍历
while ((obj = enu.nextObject)) {
NSLog(@"-%@",obj);
}
NSArray *arr6 = [NSArray arrayWithObjects:@"alksfj",@"sfhidhf",@"d",@"djlfjddfj",@"ksdf", nil];
NSLog(@"%@",[arr6 sortedArrayUsingFunction:sortType context:nil]); // 进行数组的排序,这个方法类似苹果实现了一个简单的 排序方法。但是实现的规则需要自己进行处理。
NSData *dat = [arr6 sortedArrayHint];
NSLog(@"%@",[arr6 sortedArrayUsingFunction:sortType context:nil hint:dat]);//和上面的方法类似,也是苹果用来进行排序的。所不同的是,需要传入一个NSData 的数据。
//NSLog(@"%@",[arr2 firstObjectCommonWithArray:arr2]);
}
return 0;
}
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;
}
int main(int argc, const char * argv[]) {
@autoreleasepool {
NSArray *arr = [NSArray alloc];
arr = [arr init];//数组的创建与初始化
NSLog(@"%@",arr);
NSArray *arr1 = [[NSArray alloc] initWithObjects:@"abc", nil];//用一个对象初始化
NSLog(@"%@",arr1);
NSArray *arr2 = [[NSArray alloc] initWithObjects:@"abc",@"def",@"abc", nil];//用多个对象初始化
NSLog(@"%@",arr2);
NSArray *arr3 = [[NSArray alloc] initWithArray:arr1];//从已有数组初始化
NSLog(@"%@",arr3);
NSLog(@"%lu",[arr2 count]);//返回数组的成员数
NSLog(@"%@",[arr2 objectAtIndex:1]);//返回数组某个下标的成员
NSLog(@"%@",[arr2 firstObjectCommonWithArray:arr2]);//返回数组的第一个成员
NSLog(@"%@",[arr2 lastObject]);//返回数组的最后一个成员
[arr2 arrayByAddingObject:@"ghi"];//向数组添加元素,但是不可变数组成员数不能增加
NSLog(@"%@",arr2);
[arr2 arrayByAddingObjectsFromArray:arr1];
NSLog(@"%@",arr2);
NSLog(@"%@",[arr2 componentsJoinedByString:@"123"]);//以某个分隔符把数组连接成字符串
NSString *str = @"123,456,789";
NSLog(@"%@",[str componentsSeparatedByString:@","]);//以某个分隔符把字符串分割成数组
if ([arr2 containsObject:@"abc"])//判断一个数组中是否存在@"xxx"或另一个数组,数组必须地址和内容都相同
{
NSLog(@"%@",arr1);
}
NSArray *arr4 = [arr2 objectAtIndex:2];
if ([arr2 containsObject:arr4])
{
NSLog(@"%@",arr4);
}
NSLog(@"%@",[arr2 description]);//对数组中对象的描述,可以输出数组中的对象(待进一步确定)
//NSLog(@"%@",[arr2 descriptionWithLocale:arr1]);
NSLog(@"%@",[arr2 firstObjectCommonWithArray:arr1]);//两个数组的第一个元素是否相同,如果相同,则返回 数组中,第一个元素的字符串,反之,返回null 对象
if (NSNotFound == [arr2 indexOfObject:@"abc"])//判断制定的anObject 对象是否存在数组中如果存在返回,对象所在的下标
{
NSLog(@"不再数组中!");
}
NSLog(@"%lu",(unsigned long)[arr2 indexOfObject:@"def"]);
NSArray *arr5 = [[NSArray alloc] initWithObjects:@"abc",@"def",@"abc", nil];
if ([arr2 isEqualTo:arr5])//比较两个数组是否相同 ,数组长度相同,并且相同位置上的元素也相同。
{
NSLog(@"YES!");
}
NSEnumerator *enu = [arr2 objectEnumerator];//使用数组返回一个 NSEnumerator 对象,这个对象类似与一个指针,可以用来遍历 整个数组 指针从前向后遍历
id obj;
while ((obj = enu.nextObject))
{
NSLog(@"+%@",obj);
}
enu = [arr2 reverseObjectEnumerator];//返回一个NSEnumerator 对象,这个对象类似一个指针,可以用来遍历真个数据,所不同的是,这个指针,是从后向前遍历
while ((obj = enu.nextObject)) {
NSLog(@"-%@",obj);
}
NSArray *arr6 = [NSArray arrayWithObjects:@"alksfj",@"sfhidhf",@"d",@"djlfjddfj",@"ksdf", nil];
NSLog(@"%@",[arr6 sortedArrayUsingFunction:sortType context:nil]); // 进行数组的排序,这个方法类似苹果实现了一个简单的 排序方法。但是实现的规则需要自己进行处理。
NSData *dat = [arr6 sortedArrayHint];
NSLog(@"%@",[arr6 sortedArrayUsingFunction:sortType context:nil hint:dat]);//和上面的方法类似,也是苹果用来进行排序的。所不同的是,需要传入一个NSData 的数据。
//NSLog(@"%@",[arr2 firstObjectCommonWithArray:arr2]);
}
return 0;
}