#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 所有基础点示例的更多相关文章

  1. 【IOS 开发】Objective-C Foundation 框架 -- 字符串 | 日期 | 对象复制 | NSArray | NSSet | NSDictionary | 谓词

    一. 字符串 API 1. NSString 用法简介 (1) NSString API 介绍 NSString 功能 : -- 创建字符串 : 使用 init 开头的实例方法, 也可以使用 Stri ...

  2. iOS之数据持久化方案

    概论 所谓的持久化,就是将数据保存到硬盘中,使得在应用程序或机器重启后可以继续访问之前保存的数据.在iOS开发中,有很多数据持久化的方案,接下来我将尝试着介绍一下5种方案: plist文件(属性列表) ...

  3. iOS的数据持久化

    所谓的持久化,就是将数据保存到硬盘中,使得在应用程序或机器重启后可以继续访问之前保存的数据.在iOS开发中,有很多数据持久化的方案,接下来我将尝试着介绍一下5种方案: plist文件(属性列表) pr ...

  4. iOS数据持久化

    在iOS中,实现数据持久化一般分为4大种: 1.属性列表 2.对象归档 3.SQLite 4.Core Data 一.属性列表 NSUserDefaults类的使用和NSKeyedArchiver有很 ...

  5. 转载 -- iOS数据持久化存储

    作者:@翁呀伟呀 授权本站转载 概论 所谓的持久化,就是将数据保存到硬盘中,使得在应用程序或机器重启后可以继续访问之前保存的数据.在iOS开发中,有很多数据持久化的方案,接下来我将尝试着介绍一下5种方 ...

  6. 3D touch 的 应用 --备用

    在iPhone 6s和iPhone 6s Plus中Apple引入了3D Touch技术.3D Touch的触控技术,被苹果称为新一代多点触控技术.其实,就是此前在Apple Watch上采用的For ...

  7. 妙用valueForKeyPath

    valueForKey与valueForKeyPath在KVC中同时出现,都可以使用,难免让开发者迷惑:心里知道肯定是不一样,但具体的用法你会吗?其实valueForKeyPath的功能更强大,支持深 ...

  8. ios持久化存储

    前言 iOS中常用的持久化存储方式有好几种: 偏好设置(NSUserDefaults) plist文件存储 归档 SQLite3 Core Data 沙盒 每个iOS应用都有自己的应用沙盒(应用沙盒就 ...

  9. iOS中几种数据持久化方案

    概论 所谓的持久化,就是将数据保存到硬盘中,使得在应用程序或机器重启后可以继续访问之前保存的数据.在iOS开发中,有很多数据持久化的方案,接下来我将尝试着介绍一下5种方案: plist文件(属性列表) ...

随机推荐

  1. 终端ssh登录mac用shell打包ipa报错:replacing existing signature

    终端ssh登录mac用shell打包ipa报错:replacing existing signature 报错原因:login.keychain被锁定,ssh登录的没有访问权限 解决方法:终端敲入 s ...

  2. javascript 导出Excel

    测试兼容IE google 火狐浏览器.看到的朋友也许你某一天也会需要. //obj是table表格外面嵌套div id function saveCode(obj) { try { var strH ...

  3. Qt 子窗体嵌入父窗体

    1.创建个子窗体QDialog.在子窗体构造函数添加 Dialog::Dialog(QWidget *parent) : QDialog(parent), ui(new Ui::Dialog) { u ...

  4. Storm集成Kafka应用的开发

    我们知道storm的作用主要是进行流式计算,对于源源不断的均匀数据流流入处理是非常有效的,而现实生活中大部分场景并不是均匀的数据流,而是时而多时而少的数据流入,这种情况下显然用批量处理是不合适的,如果 ...

  5. Divide and conquer:Drying(POJ 3104)

    烘干衣服 题目大意:主人公有一个烘干机,但是一次只能烘干一件衣服,每分钟失水k个单位的水量,自然烘干每分钟失水1个单位的水量(在烘干机不算自然烘干的那一个单位的水量),问你最少需要多长时间烘干衣服? ...

  6. tp5中的一些小方法

    // 当使用一个新页面替换当前页面的body后,body刷新了,所选择的select值就不能保存住,解决方法如下: 作业题目<select> <option>--请选择--&l ...

  7. 【leetcode】3Sum (medium)

    Given an array S of n integers, are there elements a, b, c in S such that a + b + c = 0? Find all un ...

  8. struts2拦截器+监听器 .

    一.拦截器是怎么实现: 实际上它是用Java中的动态代理来实现的 二.拦截器在Struts2中的应用 对于Struts2框架而言,正是大量的内置拦截器完成了大部分操作.像params拦截器将http请 ...

  9. 解决sqlite3_key的问题

    报错内容显示如下: ld: warning: ignoring file /Users/rowling/Library/Developer/Xcode/DerivedData/zhinengbango ...

  10. ASP.NET Ajax 简单实例

    本实例讲解Ajax 调用WCF服务. 1.建立一个网站,并在其中添加一个WCF服务(这里需要选择Ajax-Enabled WCF Service). 2.IDE会自动生成一个SVC文件. 3.服务代码 ...