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`经常被用在集合类如数组(NSArray)、集合(NSSet)或字典(NSDictionary)中,因为这些类只接受对象。例如,我们可以创建一个包含不同类型数值的数组: ```objc NSArray *numbersArray ...
在OC中,这些对应于NSString、NSNumber、BOOL、NSArray、NSDictionary或NSNull。 在使用该工具时,你首先需要准备一个有效的JSON文件,确保其语法正确。然后,运行该工具,导入这个JSON文件。工具会解析JSON数据,...
此外,NSDictionary中的数据成员可以是任意的Objective-C对象,但实际应用中通常是属性列表对象,如NSData、NSDate、NSNumber、NSString、NSArray或NSDictionary。当字典只包含这类对象时,可以将字典的内容持久化到...
在iOS和macOS开发中,Objective-C(OC)是主要的编程语言,而Foundation框架则是OC的核心库,它为应用程序提供了基本的数据管理和服务。本文将深入探讨OC Foundation框架中的重要概念、常用类以及它们的使用方法。 ...
数据结构的使用:介绍了NSNumber、NSString、NSArray、NSDictionary和NSSet这五种常用的数据结构。每个都详细讲解了其创建、操作和使用场景,是iOS开发中频繁打交道的数据类型。 四、类的扩展——类目和协议 1-3. ...
在Objective-C中,这些对应为NSString、NSNumber、BOOL、NSArray、NSDictionary和NSNull。一个典型的JSON对象示例如下: ```json { "name": "jack", "age": 10 } ``` 在解析JSON时,苹果提供了原生的`...
1. **属性类型**:YYModel只支持基本数据类型、NSString、NSNumber、NSData、NSURL、NSDate、NSArray、NSSet、NSDictionary以及实现了YYModel协议的对象。 2. **空值处理**:对于可选属性,YYModel会将JSON中的null...
1. Foundation框架中的基本数据类型,如NSNumber、NSString、NSArray、NSDictionary等。 2. 文件处理和网络通信功能,这些都是应用开发中不可或缺的部分。 3. 常用的工具和方法,例如日期处理、正则表达式、字符串...
Objective-C 中有很多常用的数据类型,如NSString、NSArray、NSDictionary、NSData、NSNumber 等。这些数据类型需要手动管理内存,而 C 的基本数据类型不需要管理内存。 六、id 声明的变量的特性 id 声明的变量...
本文将深入探讨Objective-C(OC)中获取应用程序缓存大小的方法。 首先,我们需要理解iOS中的缓存机制。苹果的沙盒环境为每个应用提供了独立的存储空间,其中包括Documents、Library、tmp和Cache目录。其中,Cache...
- 如果模型中包含`NSArray`或`NSSet`,数组中的元素应遵循`YYModel`协议,或者使用`NSValueTransformer`进行转换。 - `YYModel`并不处理属性的`KVC`规则,如`_`前缀的私有属性,需要手动处理。 总的来说,OC-...
此外,NSNull用于表示nil值,NSArray和NSMutableArray是不可变和可变数组,NSDictionary和NSMutableDictionary则代表不可变和可变的键值对集合。 2. **字符串处理**:NSString是Objective-C中处理文本的主要类,...
例如,处理字符串(NSString和NSMutableString)、数组(NSArray和NSMutableArray)、字典(NSDictionary和NSMutableDictionary)等。使用框架中提供的方法,可以执行追加、删除、修改、插入、查询、拆分、遍历等...
- **执行函数**:在OC代码中调用`JSGlobalContextCallFunction`来执行JS函数。 #### 三、实际案例分析 **3.1 MAC环境下Web开发工具** - **推荐工具**:Visual Studio Code (VSCode),支持多种插件扩展,适合Web...
对于集合类型,如数组`NSArray`和字典`NSDictionary`,判断空值的方法如下: ```objc NSArray *arr; if (arr == nil || arr.count == 0) { // 数组为空,执行相应操作 } NSDictionary *dict; if ([dict isEqual:...
需要注意的是,字典中的所有元素必须是JSON兼容的类型,即`NSString`, `NSNumber`, `NSArray`, `NSDictionary`, `NSNull`。如果字典中包含非JSON兼容类型,`NSJSONSerialization`会抛出异常。 此外,如果在转换过程...
- **常用的OC类型**:`NSString`、`NSArray`、`NSDictionary`、`NSData`、`NSNumber` 等。 - 这些类型提供了更高级别的抽象和功能,但需要手动管理内存。 - 与C的基本数据类型相比,OC类型提供了更多的功能,但也...
- **OC 对象类型**:需要手动管理内存。 - **C 的基本数据类型**:自动管理内存,无需显式释放。 #### 六、`id` 声明的变量特性 使用 `id` 声明的变量可以指向任何 Objective-C 对象。 #### 七、Objective-C 内存...