`

OC中NSArray,NSNumber,NSDictionary

    博客分类:
  • oc
 
阅读更多

NSNumber
============================================================================
专门用来装基础类型的对象,把整型、单精度、双精度、字符型等基础类型存储为对象

 //基本数据类型
 //专门用来装基础类型的对象
 NSNumber * intNumber = [[NSNumber alloc] initWithInt:5];
 NSNumber * floatNumber = [[NSNumber alloc] initWithFloat:3.14f];
 NSNumber * doubleNumber = [[NSNumber alloc] initWithDouble:6.7];
 NSNumber * charNumber = [[NSNumber alloc] initWithChar:'A'];
BOOL ret = [intNumber isEqualToNumber:intNumber2]; //这种比较也是可以跨不同对象的,比如:比较intNumber和floatNumber
 //通过以下方法可以还原这些基本数据类型的数据
 NSLog(@"%d", [intNumber intValue]);
 NSLog(@"%f", [floatNumber floatValue]);
 NSLog(@"%f", [doubleNumber doubleValue]);
 NSLog(@"%c", [charNumber charValue]);


NSArray
用于对象有序集合(相当于是数组)
===========================================================================
NSArray是不可变的,而且只能储存Object-c对象。另外,数组的最后一个元素一定是nil,表示结束。

注:这些集合类只能收集cocoa对象(NSOjbect对象),如果想保存一些原始的C数据(例如,int, float, double, BOOL等),则需要将这些原始的C数据封装成NSNumber类型的,NSNumber对象是cocoa对象,可以被保存在集合类中。


数组常见的用法首先是创建数组,然后对数组进行操作。

对数组进行的操作可以分为:增(插入),删,改,查 , 取,遍历,排序,比较,

对于NSArray来说,因为本身是不可变的,所以对NSArray的操作没有增和删。

NSArray  *array = [ NSArray alloc] init ];

1.取

- (id)objectAtIndex : (NSInteger *)aValue   得到所给下标的数组中的值

- (NSInteger *)indexOfObject: (id)object  得到所给对象在数组中的下标

- lastObject;  得到数组中最后一个值

例如:

    Student *stu1=[Student studentWithName:@"张三" andHobby:@"hk" andAge:21];
    Student *stu2=[Student studentWithName:@"李四" andHobby:@"hjik" andAge:25];
    Student *stu3=[Student studentWithName:@"王五" andHobby:@"fds" andAge:23];
    NSArray *stuArray=[[NSArray alloc]initWithObjects:stu1,stu2,stu3, nil];//创建数组对象并 初始化内容
    int c=[stuArray count];//返回是数组元素个数
    for (int i=0; i
    {
        Student *st=[stuArray objectAtIndex:i];//获取数组相关下表对应的元素
        [st sayHi];
    }
    NSLog(@"%d",[stuArray indexOfObject:stu3]);//indexOfObject是得到所给对象在数组中的下标
 结果是:

  我叫张三,今年21,我的爱好是hk

  我叫李四,今年25,我的爱好是hjik

  我叫王五,今年23,我的爱好是fds

2.查

- containsObject :(id)object  查询是否包含所给对象

3.遍历数组

三种方法:1.in  2.遍历器  3.for

另外,NSArray还有一个非常强大的方法  -makeObjectsPerformSelector () ;这个函数可以将一个操作作用在数组中的每个元素上。例如:

[array  makeObjectsPerformSelector:@selector(get:)] ;


字典NSDictionary
=====================================================================
相当于map,key 和 value 不能为nil空值,value可以用NSNull表示空值
字典中的元素是以键值对的形式存储的

@"one"和@"1"组成了一个键值对

@"one"称为值(value)@"1"称为键(key)

键值对的键和值,都是任意的对象,但是键往往使用字符串

字典存储对象的地址没有顺序

字典的遍历分为:键的遍历和值的遍历

NSDictionary *dict = [[NSDictionary alloc] initWithObjectsAndKeys:@"one",@"1",@"two",@"2",@"three",@"3", nil];
NSEnumerator *enumeratorKey = [dict keyEnumerator]; //键的遍历
NSEnumerator *enumeratorValue = [dict objectEnumerator]; //值的遍历通过键快速的找到值

 NSString *str = [dict objectForKey:@"1"];快速枚举法

 for(id obj in dict){ //这种方式遍历到的是键Key,获得了键,也就获得了值
     NSLog(@"%@",obj);
     NSLog(@"%@",[dict objectForKey:obj]);
 }

 

======================================================================

 

学过java的人 这些都so easy!

分享到:
评论

相关推荐

    iphone 开发学习基础NSNumber

    在iPhone开发中,`NSNumber`经常被用在集合类如数组(NSArray)、集合(NSSet)或字典(NSDictionary)中,因为这些类只接受对象。例如,我们可以创建一个包含不同类型数值的数组: ```objc NSArray *numbersArray ...

    iOS工具一键JSON转OC数据模型类

    在OC中,这些对应于NSString、NSNumber、BOOL、NSArray、NSDictionary或NSNull。 在使用该工具时,你首先需要准备一个有效的JSON文件,确保其语法正确。然后,运行该工具,导入这个JSON文件。工具会解析JSON数据,...

    Objective-C词典对象的使用总结

    此外,NSDictionary中的数据成员可以是任意的Objective-C对象,但实际应用中通常是属性列表对象,如NSData、NSDate、NSNumber、NSString、NSArray或NSDictionary。当字典只包含这类对象时,可以将字典的内容持久化到...

    OC——foundation

    在iOS和macOS开发中,Objective-C(OC)是主要的编程语言,而Foundation框架则是OC的核心库,它为应用程序提供了基本的数据管理和服务。本文将深入探讨OC Foundation框架中的重要概念、常用类以及它们的使用方法。 ...

    IOS视频教程

    数据结构的使用:介绍了NSNumber、NSString、NSArray、NSDictionary和NSSet这五种常用的数据结构。每个都详细讲解了其创建、操作和使用场景,是iOS开发中频繁打交道的数据类型。 四、类的扩展——类目和协议 1-3. ...

    iOS开发使用JSON解析网络数据

    在Objective-C中,这些对应为NSString、NSNumber、BOOL、NSArray、NSDictionary和NSNull。一个典型的JSON对象示例如下: ```json { "name": "jack", "age": 10 } ``` 在解析JSON时,苹果提供了原生的`...

    OC-model(YYModel)

    1. **属性类型**:YYModel只支持基本数据类型、NSString、NSNumber、NSData、NSURL、NSDate、NSArray、NSSet、NSDictionary以及实现了YYModel协议的对象。 2. **空值处理**:对于可选属性,YYModel会将JSON中的null...

    Objective-C.2.0 程序设计

    1. Foundation框架中的基本数据类型,如NSNumber、NSString、NSArray、NSDictionary等。 2. 文件处理和网络通信功能,这些都是应用开发中不可或缺的部分。 3. 常用的工具和方法,例如日期处理、正则表达式、字符串...

    iOS笔试题011

    Objective-C 中有很多常用的数据类型,如NSString、NSArray、NSDictionary、NSData、NSNumber 等。这些数据类型需要手动管理内存,而 C 的基本数据类型不需要管理内存。 六、id 声明的变量的特性 id 声明的变量...

    OC-获取app缓存大小

    本文将深入探讨Objective-C(OC)中获取应用程序缓存大小的方法。 首先,我们需要理解iOS中的缓存机制。苹果的沙盒环境为每个应用提供了独立的存储空间,其中包括Documents、Library、tmp和Cache目录。其中,Cache...

    OC-YYModel(字符串)

    - 如果模型中包含`NSArray`或`NSSet`,数组中的元素应遵循`YYModel`协议,或者使用`NSValueTransformer`进行转换。 - `YYModel`并不处理属性的`KVC`规则,如`_`前缀的私有属性,需要手动处理。 总的来说,OC-...

    WS-OC-Foundation:OC基础框架

    此外,NSNull用于表示nil值,NSArray和NSMutableArray是不可变和可变数组,NSDictionary和NSMutableDictionary则代表不可变和可变的键值对集合。 2. **字符串处理**:NSString是Objective-C中处理文本的主要类,...

    objective-c教程

    例如,处理字符串(NSString和NSMutableString)、数组(NSArray和NSMutableArray)、字典(NSDictionary和NSMutableDictionary)等。使用框架中提供的方法,可以执行追加、删除、修改、插入、查询、拆分、遍历等...

    JS-Native交互电子书

    - **执行函数**:在OC代码中调用`JSGlobalContextCallFunction`来执行JS函数。 #### 三、实际案例分析 **3.1 MAC环境下Web开发工具** - **推荐工具**:Visual Studio Code (VSCode),支持多种插件扩展,适合Web...

    IOS 开发之对象为空的判断(nil、null)详解

    对于集合类型,如数组`NSArray`和字典`NSDictionary`,判断空值的方法如下: ```objc NSArray *arr; if (arr == nil || arr.count == 0) { // 数组为空,执行相应操作 } NSDictionary *dict; if ([dict isEqual:...

    IOS开发之字典转字符串的实例详解

    需要注意的是,字典中的所有元素必须是JSON兼容的类型,即`NSString`, `NSNumber`, `NSArray`, `NSDictionary`, `NSNull`。如果字典中包含非JSON兼容类型,`NSJSONSerialization`会抛出异常。 此外,如果在转换过程...

    iOS常见面试题

    - **常用的OC类型**:`NSString`、`NSArray`、`NSDictionary`、`NSData`、`NSNumber` 等。 - 这些类型提供了更高级别的抽象和功能,但需要手动管理内存。 - 与C的基本数据类型相比,OC类型提供了更多的功能,但也...

    iOS笔试题

    - **OC 对象类型**:需要手动管理内存。 - **C 的基本数据类型**:自动管理内存,无需显式释放。 #### 六、`id` 声明的变量特性 使用 `id` 声明的变量可以指向任何 Objective-C 对象。 #### 七、Objective-C 内存...

Global site tag (gtag.js) - Google Analytics