Object-c NSArray

NSarray数组的使用:

1、数组简介

①oc中的数组和C中的数组有什么区别和联系

a、oc中的数组只能是对象

b、c中的数组一旦创建,不能修改

c、oc中有可变数组NSMutableArray

2、数组的创建

①、直接赋值

NSArray *array = @[@"one",@"two",@"shree"];

NSArray *array2 = @[实例对象1,实例对象2,...];

②、使用对象列表

NSArray *array3 = [NSArray arrayWithObjects:@"one",@"two",@"three",nil];

NSArray *array4 = [NSArray arrayWithObjects:实例对象1,实例对象2,nil];

如果学习NSArray:alt+光标+点击

a、查看参考

①有序的,索引的,

b、查看Api

c、xcode 帮助文档

3、获得数组的长度(大小)

NSUInteger count = array4.count;

NSlog(@"count=%lu",count);

4、获得某个索引位置的元素(数组是一个ordered有序列表)

下标从0开始的,如:

NSString *item = [array objectAtIndex:2];

NSlog(@"%@",item);

输出的值为three。

5、遍历数组

a.count  objeAtIndex

for(int i = 0;i<count;i++){

NSString *item = [array objectAtIndex:i]

NSlog(@"%@",item);

}

for(id a in collection)

for(NSString *item in array){

NSlog(@"%@",item);

}

6、获得某个元素再数组中的位置

- (NSUInteger)indexOfObject:(id)anObject;

NSUInteger index = [array indexOFObject:@"two"];

NSlog(@"index=%lu",index);

7、将数组元素连接成字符串

-(NSString*)componentsJoinedBySting:(NSString*)separator;

NSString*str2 = [array componentsJoinedByString:@";"];这里的分号是分割符

NSlog(@"%@",str2);

8、将一个数组添加到另一个数组

NSArray *array1 = @[@"1",@"2",@"3"];

NSArray *array2 = @[@"a",@"b",@"c"];

NSArray *temp = [array1 arrayByAddingObjectsFromArray:array2];

NSlog(@"%@",temp);

输出:123abc。

9、判断数组中是否包含某个对象

-(BOOL)containsObject:(id)anObject;

10、枚举迭代

输出所有的元素:

顺序:

NSEnumerator *e = [array objectEnumerator];

//id x = [e nextObject];

id x;

while((x=[e nextObject])!=nil){

NSlog(@"%@",x);

}

逆序:

e = [array reverseobjectEnumerator];

while((x=[e nextObject])!=nil){

NSlog(@"%@",x);

}

11、数组的排序

sortedArrayUsingComparator

12、讲数组写入文件

时间: 2024-11-29 00:11:13

Object-c NSArray的相关文章

NSString,NSArray和NSDictionary to JSON标准格式字符串

#import <Foundation/Foundation.h> @interface NSString (HXAddtions) +(NSString *) jsonStringWithDictionary:(NSDictionary *)dictionary; +(NSString *) jsonStringWithArray:(NSArray *)array; +(NSString *) jsonStringWithString:(NSString *) string; +(NSStr

【非凡程序员】 OC第六节课 (枚举,字典,结构体,NSRange,CG类型,NSnumber,空)

#import <Foundation/Foundation.h>#import "Article.h"#import "Person.h" int main(int argc, const char * argv[]) {    @autoreleasepool { //自动释放池 (半自动) //-------------------------枚举类---------------------------------//     NSArray *p

设计模式 - 备忘录

备忘录模式很简单,就是存储对象,然后支持恢复对象到之前的某个状态,玩过游戏的,一定懂得存档一说,备忘录就是对对象的存档与管理. 效果: 这个需要配合FastCoder使用,请自行到Github上去搜索源码FastCoder源码^_^! 源码: Model.h 与 Model.m // // Model.h // MementoPattern // // Created by YouXianMing on 15/1/3. // Copyright (c) 2015年 YouXianMing. Al

后台传回null的崩溃容错处理

后台使用orc 数据库...对于没有赋值的字段,会返回<null> 直接使用苹果自带的kvc 去将数据转模型,,会crash      [model setValuesForKeysWithDictionary:dataDic]; 虽然后台也会尽量避免传回<null> ,但是作为程序员应该严谨对待每一个可能崩溃的问题. 有 解决方案   就是在每一个 可能传回null 的地方 使用  if([m_result isEqual:[NSNUll null]]) 去判断,但这不是一个有追

parse Json

一.数据来源 1.来源于mainBundle 2.来源于服务器 二.解析步骤 `1.数据来源于mainBundle //读取数据 NSString *jsonPath = [[NSBundle mainBundle] pathForResource:@"test.json" ofType:nil]; 解析数据(获取key对应的value)接受原则,{}使用字典 []是用数组接受 NSError *error = nil;     NSDictionary *jsonDic = [NSJ

iOS开发中的那些的约定俗成(1)————《编写高质量iOS与OS X代码的52个有效方法》读书笔记(第一章)

iOS开发中的那些的约定俗成(1) ----<编写高质量iOS与OS X代码的52个有效方法>读书笔记(第一章) 前言 "我要成为一个高产的开发人员.""想要混的好,就得多努力." 写这些东西是因为毕竟看了书,但是看书看过去之后,也许印象不是很深刻,有些东西现在也理解不了,那我就把我理解的,现在就可以用到的东西,简单的写出来就好,让自己今后看到就能明白其中的意思. 还有就是锻炼一下表达,编辑能力,慢慢的提升自己,随时随地的都要有一个锻炼的心. 最后当然就

KVC的底层实现原理

KVC是OC特有的,本质是在运行时动态的给对象发送setValue:forKey 消息,设置数值 -调用super.init 保证对象已经被创建完成 .当给对象发送setValue:forKey 消息时要判断对象是否存在key所对应的属性,直接赋值 如果没有就调用undefinedKey(默认崩溃,需要重写) setValue:forKey的调用顺序首先会寻找set<key>方法,如果没有就去找_<key>  _is<Key>  <key> is<ke

[精通Objective-C]进阶技巧:使用运行时系统API

[精通Objective-C]进阶技巧:使用运行时系统API 参考书籍:<精通Objective-C>[美] Keith Lee 什么是运行时系统? 目录 精通Objective-C进阶技巧使用运行时系统API 目录 动态加载可选包 创建命令行程序 创建可选包 传入包路径 使用可选包 运行时系统API 动态代理 创建实现横切功能的协议和类 编写代理类 添加代理的目标类 测试动态代理程序 动态加载可选包 下面是使用NSbundle API动态加载自己编写的框架包的示例,共需要创建两个工程,一个命

JavaScriptCore in swift

JavaScriptCore是IOS7之后苹果悄悄推出的一个框架,用于Javascript与objective-c/swift互通.让Javascript开发者可以轻松愉快地用Javascript编写应用程序. 根据我学习的原则,新东西学习,就一起学吧,所以边学swift边学Javascript,于是就用swift来折腾折腾JavaScriptCore. 一.先看看JavaScriptCore框架的头文件: 1 #import "JSContext.h" 2 #import "

object-c编程tips-kvokvc浅析

KVC键值编码 一,概述 KVO,即:Key-Value Observing,它提供一种机制,当指定的对象的属性被修改后,则对象就会接受到通知.它在控制层和模型层之间的消息沟通中发挥很大作用.controller层的对象观察model层对象的属性,从而使得view对象可以通过controller层间接观察model的属性,解耦model和view. 例如demo工程IOSKvoUse 初始化:model对象将当前的viewController作为自己score属性的观察者. 1,在viewCon