——- 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培训、期待与您交流! ———-