NSArray 所有基础点示例
#import <Foundation/Foundation.h>
//排序算法,应用于 NSArray *arr=[arrs1 sortedArrayUsingFunction:sortByID context:nil];排序
NSInteger sortByID(id obj1, id obj2, void *context){
NSString *str1 =(NSString*) obj1;
NSString *str2 =(NSString *) obj2;
if (str1.length < str2.length) {
return NSOrderedDescending;
}
else if(str1.length == str2.length)
{
return NSOrderedSame;
}
return NSOrderedAscending;
}
int main(int argc, const char * argv[]) {
@autoreleasepool {
//数组只能存储oc对象,NSArray一旦创建不能修改
NSArray *arrs0=@[@"123",@"456",@"789"];
//初始化数组的一种奇葩
NSArray *arrs1=[NSArray arrayWithArray:arrs0];
//1.获取数组中的元素对象
id need=[arrs1 objectAtIndex:1];//取出索引位置中的对象
id nn=[arrs1 objectAtIndexedSubscript:1];
NSLog(@"need=%@",need);
//2.元素个数
int t=[arrs1 count];
//3.判断是否包含
bool isYes=[arrs1 containsObject:@"123"];
//4.取得数组中第一个和最后一个元素
need= [arrs1 firstObject];
need=[arrs1 lastObject];
//5.添加元素,返回另一个数组
arrs0=[arrs1 arrayByAddingObject:@"000"];
//6.合并两个数组
arrs0=[arrs1 arrayByAddingObjectsFromArray:arrs1];
NSLog(@"%@",arrs0);
//7.取得数组一定范围内的数据
arrs0=[arrs1 subarrayWithRange:NSMakeRange(1, 1)];
NSLog(@"%ld",[arrs0 count]);
//8.判断是否相等
isYes=[arrs0 isEqualToArray:arrs1];
//9.返回元素的位置
int tt=[arrs0 indexOfObject:@"123"];
NSLog(@"%d",tt);
tt=[arrs0 indexOfObjectIdenticalTo:@"123"];
//10.数组与字符串的转换
NSString *sss=[arrs1 componentsJoinedByString:@"-"];
//11.字符串与数组转换
NSArray *array=[sss componentsSeparatedByString:@"-"];
NSLog(@"%@",sss);
NSLog(@"%@",array);
//sortedArrayHint:不知道怎么用的
//int num=[array sortedArrayHint];
//NSLog(@"%ld",num);
//12.写入文件,写入url
[arrs1 writeToFile:@"/users/tang/desktop/array.plist" atomically:YES];
NSArray *arrfile=[NSArray arrayWithContentsOfFile:@"/users/tang/desktop/array.plist"];
NSLog(@"%@",arrfile);
//13.数组的遍历 还有两种
[arrs1 enumerateObjectsUsingBlock:^(id obj, NSUInteger idx, BOOL *stop) {
NSLog(@"%d,%@",idx,obj);
if(idx==1)
{
*stop=YES;
}
}];
//14.正向遍历
NSEnumerator *dfd=[arrs1 objectEnumerator];
for (id dd in dfd) {
NSLog(@"%@",dd);
}
//15.反向遍历
dfd=[arrs1 reverseObjectEnumerator];
for (id dd in dfd) {
NSLog(@"%@",dd);
}
//16用自己写的函数实现数组的排序
NSArray *arr=[arrs1 sortedArrayUsingFunction:sortByID context:nil];
// NSLog(@"%ld",NSNotFound);
}
return 0;
}
NSArray 所有基础点示例的更多相关文章
- 【IOS 开发】Objective-C Foundation 框架 -- 字符串 | 日期 | 对象复制 | NSArray | NSSet | NSDictionary | 谓词
一. 字符串 API 1. NSString 用法简介 (1) NSString API 介绍 NSString 功能 : -- 创建字符串 : 使用 init 开头的实例方法, 也可以使用 Stri ...
- iOS之数据持久化方案
概论 所谓的持久化,就是将数据保存到硬盘中,使得在应用程序或机器重启后可以继续访问之前保存的数据.在iOS开发中,有很多数据持久化的方案,接下来我将尝试着介绍一下5种方案: plist文件(属性列表) ...
- iOS的数据持久化
所谓的持久化,就是将数据保存到硬盘中,使得在应用程序或机器重启后可以继续访问之前保存的数据.在iOS开发中,有很多数据持久化的方案,接下来我将尝试着介绍一下5种方案: plist文件(属性列表) pr ...
- iOS数据持久化
在iOS中,实现数据持久化一般分为4大种: 1.属性列表 2.对象归档 3.SQLite 4.Core Data 一.属性列表 NSUserDefaults类的使用和NSKeyedArchiver有很 ...
- 转载 -- iOS数据持久化存储
作者:@翁呀伟呀 授权本站转载 概论 所谓的持久化,就是将数据保存到硬盘中,使得在应用程序或机器重启后可以继续访问之前保存的数据.在iOS开发中,有很多数据持久化的方案,接下来我将尝试着介绍一下5种方 ...
- 3D touch 的 应用 --备用
在iPhone 6s和iPhone 6s Plus中Apple引入了3D Touch技术.3D Touch的触控技术,被苹果称为新一代多点触控技术.其实,就是此前在Apple Watch上采用的For ...
- 妙用valueForKeyPath
valueForKey与valueForKeyPath在KVC中同时出现,都可以使用,难免让开发者迷惑:心里知道肯定是不一样,但具体的用法你会吗?其实valueForKeyPath的功能更强大,支持深 ...
- ios持久化存储
前言 iOS中常用的持久化存储方式有好几种: 偏好设置(NSUserDefaults) plist文件存储 归档 SQLite3 Core Data 沙盒 每个iOS应用都有自己的应用沙盒(应用沙盒就 ...
- iOS中几种数据持久化方案
概论 所谓的持久化,就是将数据保存到硬盘中,使得在应用程序或机器重启后可以继续访问之前保存的数据.在iOS开发中,有很多数据持久化的方案,接下来我将尝试着介绍一下5种方案: plist文件(属性列表) ...
随机推荐
- MDI窗体
1.设置父窗体 使用MDI窗体,需要先将父窗体的IsMdiContainer属性设置为True 2.生成用于MDI子窗体的窗体 1 frmTemp f1 = new frmTemp(); f1.Tex ...
- CentOS 7部署Kafka和Kafka集群
CentOS 7部署Kafka和Kafka集群 注意事项 需要启动多个shell脚本交互客户端进行验证,运行中的客户端不要停止. 准备工作: 安装java并设置java环境变量,在`/etc/prof ...
- CEF3开发者系列之外篇——IE中JS与C++交互
使用IE内核开发客户端产品,系统和前端页面之间的交互,通常给开发和维护带来很大的便利性.但操作系统和前端之间的交互却是比较复杂的.具体来说就是脚本语言和编译语言的交互.在IE内核中html和css虽然 ...
- 如何为自己的windows 8系统的电脑更换锁屏壁纸
现在的人都喜欢个性,今天教大家如何设置自己想要的锁屏壁纸 工具/原料 Windows 8系统的笔记本电脑 方法/步骤 将鼠标移到电脑的右下方,点击设置按钮进入设置页面 找到更改电脑设置并点击进 ...
- 15. javacript高级程序设计-Canvas绘图
1. Canvas绘图 HTML5的<canvas>元素提供了一组JavaScript API,让我们可以动态的创建图形和图像.图形是在一个特定的上下文中创建的,而上下文对象目前有两种. ...
- shiro的简单使用
<?xml version="1.0" encoding="utf-8"?> <web-app xmlns:xsi="http:// ...
- Mysql 练习 总结
insert into Course values ('); #---------------Teacher--添加信息---- insert into Teacher values (','李成', ...
- 【linux】linux下运行java程序
参考了http://www.cnblogs.com/howard-queen/archive/2012/01/30/2331795.html 第一步:用vim先写一个java程序 first.jav ...
- 创建URL为空的解决办法
在使用+URLWithString:或-initWithString:创建一个URL对象时,提供的参数字符串必须符合RFC 2396标准(O网页链接.而这两个方法又是根据RFC 1738(O网页链接和 ...
- August 24th 2016 Week 35th Wednesday
Storms make trees take deeper roots. 暴风雨能使大树的根扎得更深. If the trees already have deep roots, then the s ...