1. ios 类似数组排序的方法怎么写
IOS几种简单有效的数组排序方法//第一种,利用数组的sortedArrayUsingComparator调用 NSComparator ,obj1和obj2指的数组中的对象NSComparator cmptr = ^(id obj1, id obj2){ if ([obj1 integerValue] > [obj2 integerValue]) { return (NSComparisonResult)NSOrderedDescending; } if ([obj1 integerValue] < [obj2 integerValue]) { return (NSComparisonResult)NSOrderedAscending; } return (NSComparisonResult)NSOrderedSame;};NSArray *sortArray = [[NSArray alloc] initWithObjects:@"1",@"3",@"4",@"7",@"8",@"2",@"6",@"5",@"13",@"15",@"12",@"20",@"28",@"",nil]; //排序前 NSMutableString *outputBefore = [[NSMutableString alloc] init]; for(NSString *str in sortArray){ [outputBefore appendFormat:@"]; } NSLog(@"排序前:%@",outputBefore); [outputBefore release]; //第一种排序 NSArray *array = [sortArray sortedArrayUsingComparator:cmptr]; NSMutableString *outputAfter = [[NSMutableString alloc] init]; for(NSString *str in array){ [outputAfter appendFormat:@"]; } NSLog(@"排序后:%@",outputAfter); [outputAfter release];第二种 排序方法 利用sortedArrayUsingFunction 调用 对应方法customSort,这个方法中的obj1和obj2分别是指数组中的对象。
NSInteger customSort(id obj1, id obj2,void* context){ if ([obj1 integerValue] > [obj2 integerValue]) { return (NSComparisonResult)NSOrderedDescending; } if ([obj1 integerValue] < [obj2 integerValue]) { return (NSComparisonResult)NSOrderedAscending; } return (NSComparisonResult)NSOrderedSame;} NSArray *sortArray = [[NSArray alloc] initWithObjects:@"1",@"3",@"4",@"7",@"8",@"2",@"6",@"5",@"13",@"15",@"12",@"20",@"28",@"",nil]; //排序前 NSMutableString *outputBefore = [[NSMutableString alloc] init]; for(NSString *str in sortArray){ [outputBefore appendFormat:@"]; } NSLog(@"排序前:%@",outputBefore); [outputBefore release]; NSArray *array = [sortArray sortedArrayUsingFunction:customSort context:nil]; NSMutableString *outputAfter = [[NSMutableString alloc] init]; for(NSString *str in array){ [outputAfter appendFormat:@"]; } NSLog(@"排序后:%@",outputAfter); [outputAfter release];第三种 利用sortUsingDescriptors调用NSSortDescriptor NSSortDescriptor *sortDescriptor = [[NSSortDescriptor alloc] initWithKey:@"price" ascending:NO];//其中,price为数组中的对象的属性,这个针对数组中存放对象比较更简洁方便 NSArray *sortDescriptors = [[NSArray alloc] initWithObjects:&sortDescriptor count:1]; [_totalInfoArray sortUsingDescriptors:sortDescriptors]; [_airListView refreshTable:_totalInfoArray]; [sortDescriptor release]; [sortDescriptors release];。
2. ios 怎么往数组的数组中添加数据
你那样定义后,不能直接使用,因为未对当前数组变量进行实例化,也就没有进行内存分配这里给你推荐两种方法。
1、初始化时设置他的数组大小string[] myarr = new string[2];myarr[0] = "1";myarr[1]="第二个值";2、初始化时设置他的数组大小并赋值string[] myarr = new string[]{"1","2"};3、可以动态改变数组大小的数组List listArr = new List();listArr.add("添加的值");listArr.add("再添加一个值");listArr.add("OK");listArr.RemoveAt(1);//删除索引1的项。.//该方法操作数组更加灵活。
如果不需要动态操作数组的话,可以不使用该方法。string[] myarr = listArr.ToArray();//将List类型转成string[]类型的数组。
3. ios中怎样把数组加到数组里面
// NSMutableArray *mutArr = [NSMutableArray array];
// [mutArr addObject:dict];
//
// NSMutableDictionary *dictbbb =[[NSMutableDictionary alloc]init];
// [dictbbb setObject:mutArr forKey:@"person"];
// NSLog(@"dictbbb is %@",dictbbb);
//
//
// NSData *dictData1 = [NSJSONSerialization dataWithJSONObject:dictbbb options:NSJSONWritingPrettyPrinted error:nil];
// NSString *jsonString1= [[NSString alloc]initWithData:dictData1 encoding:NSUTF8StringEncoding];
//
// NSLog(@"jsonbbbb str is %@",jsonString1);
//
//
//
// NSData* xmlData = [jsonString1 dataUsingEncoding:NSUTF8StringEncoding];
// NSMutableArray *mutDict1 = [NSJSONSerialization JSONObjectWithData:xmlData options:(NSJSONReadingMutableLeaves) error:nil];
//
// NSLog(@"mutdicr1 是%@",mutDict1);
NSDictionary *dictaaaaa = [mutDict1 objectForKey:@"name" ];
// NSString *name2 = [perDict objectForKey:@"name"];
// NSLog(@"姓名是:%@",name2);
4. 怎么在数组后面添加数组 ios
怎么在数组后面添加数组 ios cpystr(pa,pb); printf("string a=%s\nstring b=%s\n",pa,pb);}在本例中,程序完成了两项工作:一是把pss指向的源字符串复制到pds所指向的目标字符串中,二是判断所复制的字符是否为`\0',若是则表明源字符串结束,不再循环。
否则,pds和pss都加1,指向下一字符。在主函数中,以指针变量pa,pb为实参,分别取得确定值后调用cprstr函数。
由于采用的指针变量pa和pss,pb和pds均指向同一字符串,因此在主函数和cprstr函数中均可使用这些字符串。也可以把cprstr函数简化为以下形式: cprstr(char *pss,char*pds) {while((*pds++=*pss++)!=`\0');} 即把指针的移动和7a64e78988e69d8331333361313966赋值合并在一个语句中。
进一步分析还可发现`\0'的ASCⅡ码为0,对于while语句只看表达式的值为非0就循环,为0则结束循环,因此也可省去“!=`\0'”这一判断部分,而写为以下形式: cprstr (char *pss,char *pds){while (*pdss++=*pss++);}表达式的意义可解释为,源字符向目标字符赋值,移动指针,若所赋值为非0则循环,否则结束循环。这样使程序更加简洁。
【例10.30】简化后的程序如下所示。
5. ios 怎么获得数组中的数组元素
System.out.println(“我是java的打印”);
在Object-C 则如此:
打印一个NSString:
NSString str = @”我是OBject-C数据”;
NSLog(@“打印数据了% @”,str);
NSLog的格式如下所示:
%@ 对象
%d, %i 整数
%u 无符整形
%f 浮点/双字
%x, %X 二进制整数
%o 八进制整数
%zu size_t%p 指针
%e 浮点/双字 (科学计算)
%g 浮点/双字
%s C 字符串
%.*s Pascal字符串
%c 字符
%C unicha
r%lld 64位长整数
(long long)%llu 无符64位长整数
%Lf 64位双字
<3>;下面说说数组,很常用的数组
//初始化不可变数组,切记初始化后不可以改变的数组
NSArray mArray =[[NSArray alloc] initWithObjects:
@"雨松MOMO",
@"15810463139",
@"xuanyusong@gmail.com",
self,nil];
//可以改变的数组
NSMutableArray nsma = mArray ;//这里我们直接的赋值;
下面注意的是对数组的遍历,如同java里面一样有一种简单的遍历数组的方法:
遍历方法一:
For(int i = 0; i < nsma.count; i++ ){
NSString *temp = [nsma objectAtIndex:i];//这里便是拿出来没一个数据
}
遍历方法二:
//objective-c 2.0 引入的快速枚举法 不仅速度快 并且安全性高,推荐使用这种方式来遍历
for (NSString * str in nsma) {
NSLog(@"固定数组 %@", str);
}
NSMutableArray是一个可以改变数据的数组,提供了两种方法:
addobject方法用于向数组中添加元素
//添加数组
- (void)addArray: (NSObject *) str
{
[mListArray addObject:str];
}
removeObject方法用于删除元素
//删除数组
-(void) deleteArray:(NSString *)str
{
[mListArray removeObject:str];
}
replaceObjectAtIndex 方法可以修改数组中的某一个元素
//修改数组中的元素
-(void)changeArray:(int)ID:(NSObject *) str
{
[mListArray replaceObjectAtIndex:ID withObject:str];
}
insertObject方法用于向数组中插入一个元素
//向数组中插入一个元素
-(void)insertArray:(int)ID:(NSObject *) str
{
[mListArray insertObject:str atIndex:ID];
}
6. iOS中的数组底层是怎么实现的
如果必须要用FileOutputStream的话那是没有办法的,因为FileOutputStream是属于比较底层的流,所有的构造方法都与文件关联。
但是如果要写入blob中的话使用FileOutputStream却是有点儿多余的,因为像你那样写入文件读出来之后同样还是byte数组,所以可以直接使用OutputStream的write(byte[] b, int off, int len)方法,OFF开始标记一般设为0,len偏移量一般设为byte的length大小。