#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;
}
NSArray方法亲测
时间: 2024-10-03 13:39:46
NSArray方法亲测的相关文章
当今最全面可用的微博分享组件嵌入方法(亲测2019年2月仍有效)
当今最全面可用的微博分享组件嵌入方法(亲测2019年2月仍有效) 最近一直在找一种目前可用的微博分享组件的使用方法,发现有3个大坑: 向网页嵌入微博秀时,需要的uid简单,但需要的verifier值有点难获取,原因在于原生成微博秀页面的 url 及其子链接均会被强制从http重定向跳转到https,此外其response中部分css引用失败导致页面无法完整显示; https页面是没法调用http下的js和css的; 微博秀是需要用iframe来嵌入的,博客园默认不支持iframe标签,可通过构造
linux下升级gcc的方法 – 亲测可用
由于工作主要平台换到了linux上,而linux因为源上没有比较新的gcc,只有4.7,而我们用到了C++11, 只好自己升级了,升级方法也比较简单,就是耗时间. 1.下载gcc最新的源码包 wget http://gcc.skazkaforyou.com/releases/gcc-4.9.1/gcc-4.9.1.tar.gz 2.解压缩 tar -xf gcc-4.9.1.tar.gz豪享博娱乐城 3. cd gcc-4.9.1 4.运行download_prerequisites脚本, ./
php发送邮件方法-亲测可用,email.class.php过期解决办法
php虽然提供了mail()函数,但并不好用,而PHPMailer是一个不错的邮件发送工具,使用起来也是非常简单!使用PHPMailer发送邮件: <?php header("content-type:text/html;charset=utf-8"); ini_set("magic_quotes_runtime",0); require 'class.phpmailer.php'; try { $mail = new PHPMailer(true); $ma
VMWare虚拟机NAT上网方法 亲测可用
首先虚拟机的网卡要选择NAT 然后 在Virtual Network Editor中一定选上DHCP功能. 还要主机的服务必须开启.主机的VMnet8对应NAT模式,这个VMnet8的配置保持默认不要改,默认会有IP,不要设置成自动获取. 在虚拟机Windows系统的网卡设置必须自动获取.不能指定IP,不过DHCP每次分配的IP都是一样的相当于固定IP.
iOS 中快速简单高效的实现自定义tableViewCell 的方法-亲测实战版本-精华版
ios7 新升级之后界面有了很大的变化,xcode模拟器去掉了手机边框和home键,如果想回到主页面,可以按住shift+comment+r键.废话少说先展示一下新UI下UItableView设置为Group后的效果: 整体界面显得更加简洁,而且UITableViewCell的宽度默认为满屛,也取消了圆角. 下面说下自定义UITableView的过程: 首先在storyboard中给cell拖过来一个UIimageView和两个label 然后新建一个MyCell类继承自UITableViewC
两个JDK之间切换的方法(亲测有用)
目标:为适应客户的Java环境,windows下安装了两个JDK(1.7和1.8),需要经常在两个环境下切换 安装过程: 1)先安装1.7 2)新建环境变量JAVA_HOME和CLASSPATH,在Path中加入环境变量(基本的JDK环境变量配置方 法)注意:JAVA_HOME的值不要加上":" 3)打开cmd 输入java -version:显示的是java7的版本号 切换过程: 1)安装1.8 2)此时cmd中输入java会显示: Error: Registry key 'So
python3 django1.11 安装xadmin 的方法,亲测可用
1 首先需要Pip安装如下的包ip install django-crispy-forms pip install django-import-export pip install django-reversion pip install django-formtools pip install future pip install httplib2 pip install six 安装好以后用pip list看是这个样子的 2 从github下载xadmin 解压zip包,将xadmin目录复
win10专业版激活方法——亲测可行!!!
1.首先,我们先查看一下Win10正式专业版系统的激活状态: 点击桌面左下角的"Windows"按钮,从打开的扩展面板中依次点击"设置"-"更新和安全",并切换到"激活"选项卡,在此就可以查看到当前系统的激活状态.如图,Win10正式专业版当前未激活 2.接下来在桌面左下角的"cortana"搜索框中输入"CMD",待出现"命令提示符"工具时,右击选择"以管
win10教育版永久激活密钥 win10教育版激活码 win10教育版产品密钥2018(第三种方法亲测可用!)
有没有最新win10教育版激活密钥?win10教育版功能比较全面,增加了一些学术上需要的功能.有用户装了win10教育版,提示需要产品密钥,网上找到的win10教育版永久激活码大多失效,这边小编为大家整理2018最新的windows10教育版永久激活密钥. 系统推荐:免激活win10系统下载 说明:win10教育版密钥都是网络整理,不能保证100%可用,毕竟容易被封.其中批量版有激活次数限制,kms激活密钥则不用担心被封,kms密钥永久有效.零售版和VL版永久激活码和kms安装密钥激活步骤不一样