黑马程序员IOS-OC语言-Foundation-类

本文详细介绍了Foundation框架中的数据类型使用方法,包括NSString、 NSMutableString、NSArray、NSMutableArray、NSSet、NSMutableSet、NSDictionary、NSMutableDictionary、NSNumber、NSValue、NSDate等,并提供了创建、操作和存储数据的具体实例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

——- android培训、java培训、期待与您交流!


Foundation 框架

结构体
    NSRange                 范围
    NSPoint / CGPoint       点
    NSSize  / CGSize        大小
    NSRect / CGRect         位置(点、大小)

类
    NSString / NSMutableString  字符串、可变字符串

    集合
    NSArray / NSMutableArray
    NSSet / NSMutableSet
    NSDictionary / NSMutableDictionary

    NSNumber
    NSValue
    NSDate

要想使用 Foundation 中的所有数据类型,包含他的主头文件即可 :

#import <Foundation/Foundation.h>

Foundation 中常用的 : 类


NSString、NSMutableString

NSString(不可变参数) 对象的创建

NSString *变量名 = @“字符串”;  //最简单的创建方式

NSString *变量名 = [ [NSString alloc] initWith(以什么方式创建就是什么)]; // initWithXxx适用于任何类
例如 : NSString *s = [[NSString alloc] initWithFormat:@“字符串” ,可以有参数 ];

NSString *变量名 = [NSString stringWith(以什么方式创建就是什么)];  // stringWithXxx适用于任何类
例如 : NSString *s = [NSString stringWithFormat :@“字符串” ,可以有参数 ];


字符串的导出一
[字符串对象 writeToFile :@"" atomically : YES encoding :NSUTF8StringEncoding error :nil ];

字符串的导出二
[字符串对象 writeToURL :URL对象 atomically :YES encoding :NSUTF8StringEncoding error :nil];

读存文件或者URL时暂时写encoding: NSUTF8StringEncoding error: nil

NSMutableString(可变参数) —> NSString 的子类
创建方式:
NSMutableString *变量名 = [NSMutableString stringWithFormat :@“字符串”,可以有参数];

NSMutableString 类中方法

[对象 appendString: @“要拼接的字符串”];  // 拼接一段字符串

[对象 deleteCharactersInRange: NSRange对象]; // 移除一段字符串

集合类 : NSArray、NSSet、NSDictionary


NSArray、NSMutableArray

NSArray 对象的创建

NSArray *array = @[元素1,元素2,...];    
// 最简单的创建方式:只返回 NSArray 对象

NSArray 集合的元素个数 : 集合对象.count
可以用点语法调用 count ,获取成员变量 _count 的值,也就是集合的元素个数


NSArray 集合元素的访问

集合名[index];
[集合名 objectAtIndex: index];

NSArray 集合元素的遍历

1> for(int i = 0 ; i < 集合名.count ; i++)
2> for(id obj(自定变量名) in 集合名)
3>
[集合名 enumerateObjectsUsingBlock:^(id obj, NSUInteger idx, BOOL *stop){
    /*obj 即为 元素, idx 为与之对应的角标*/
}]

NSMutableArray 对象的创建

// 会将 nil 前的元素存入集合中
NSMutableArray *集合名 = [NSMutableArray arrayWithObjects:...,nil];

// 添加元素

- (void)addObject:(id)anObject;
[集合名 addObject:元素];

// 删除元素

- (void)removeObject:(id)anObject;
[集合名 removeObject:元素];  // 还有一个 removeAllObjects 方法

NSSet、NSMutableSet

NSSet 对象的创建

NSSet *集合名 = [NSSet set]; // 创建一个不能改变的set集合

NSSet *集合名 = [NSSet setWith(选择适合的名称)];

NSSet 集合元素个数 : 元素对象.count
可以用点语法调用 count ,获取成员变量 _count 的值,也就是集合的元素个数

NSSet 集合元素的访问

- (id)anyObject;    // 获取集合中任意一个元素
id temp = [集合名 anyObject];

NSMutableSet 对象的创建 : 与 NSSet 对象创建相同,且可以自己增删元素

// 添加

- (void)addObject:(id)object;

// 删除

- (void)removeObject:(id)object;    
// 还有一个 removeAllObjects 方法

NSDictionary、NSmutableDictionary

NSDictionary 字典集合 : 字典中存储的东西都是键值对

key --> value

字典集合中不允许有相同的 key ,但允许有相同 value

NSDictionary 对象的创建

NSDictionary *集合名 = @{key1 : value1, key2 : value2, ...};   // 最简单的方式,只返回NSDictionary

NSDictionary *集合名 = [NSDictionary dictionaryWith(选择适合的名称)];

NSDictionary 集合元素个数 : 集合对象.count
可以用点语法调用 count ,获取成员变量 _count 的值,也就是集合的元素个数

NSDictionary 元素获取

id value = 集合名[key];  // 将key和value互换没有作用,没有'key'返回null

NSDictionary 集合的遍历

[集合名 enumerateKeysAndObjectsUsingBlock:^(id key, id obj, BOOL *stop) {
    /*一个key 对一个 value*/
}];

NSMutableDictionary 对象的创建

NSMutableDictionary *集合名 = [NSMutableDictionary dictionary(With自选适合)];

// 添加元素

- (void)setValue:(id)value forKey:(NSString *)key; 
// setObject:forKey: 也可以? 不一样吗?

// 获取元素

    id value = 集合名[key];

// 移除键值对

- (void)removeObjectForKey:(id)aKey;    // 会移除指定的 key 以及 key 对应的 value
 集合总结
 1> NSArray、NSMutableArray
 * 有序的
 * 快速创建(不可变): @[obj1, obj2, ...];
 * 快速访问元素 : 数组名[index];

 2> NSSet、NSMutableSet
 * 无序的

 3> NSDictionary、NSMutableDictionary
 * 无序的
 * 快速创建(不可变): @{key1 : value1, key2 : velue2, ...};
 * 快速访问元素 : 字典名[key];

NSNumber 和 NSValue


NSNumber : 将基本数据类型转换为对象

NSNumber 对象的创建

NSNumber *变量名 = @值;  // 最简单的方式,当@后面跟变量名时,会识别为关键字报错,需要加()

NSNumber *变量名 = [NSNumber numberWith(选择合适的)];

对象与值之间的转换

值 --> 对象
    NSNumber *变量名 = @值;

对象 --> 值
    类型 变量名 = [对象 类型Value];
    如 :  double d = [对象 doubleValue];

NSValue : 将结构体转换为对象

NSValue 是 NSNumber 的父类

对象与结构体之间的转换

结构体 --> 对象
    NSValue *变量名 = [NSValue value(自选)];

对象 --> 结构体
    结构体名 变量名 = [对象 结构体Value];
    如 : CGPoint point = [对象 pointValue];

NSDate

日期类 NSDate

NSDate *变量名 = [NSDate date];

日期格式化类 NSDateFormatter

创建 :

 NSDateFormatter *变量名 = [[NSDateFormatter alloc] init];

NSDateFormatter 类中定义了一个名为 _dateFormat 的成员变量,记录日期格式

可以直接点语法调用 变量名.dateFormat = @”设置格式如下”;

y : 年
M : 月
d : 日
--
H : 小时(24)
h : 小时(12)
m : 分钟
s : 秒

日期格式化对象可以调用 dateFromString 方法参数为字符串,将字符串按照日期格式对象转换为日期对象

NSDate *date = [[NSDateFormatter对象] dateFromString: @"字符串"];

——- android培训、java培训、期待与您交流! ———-

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值