黑马程序员-----OC学习之Foundation中的类
来源:互联网 发布:多益网络 收入 编辑:程序博客网 时间:2024/05/22 06:53
Foundation中的类:
字符串的创建方式:
1) 最直接的方式(这是常量字符串):注意这种写法,字符串存储在内存的常量区,地址一样;
NSString *str1 = @"abc";
2) 格式化的方式:注意这种写法,字符串存储在内存的堆区(地址不一样)
NSString *str2 = [NSString stringWithFormat:@"%@", @"jack"];
NSString *str3 = [[NSString alloc] initWithFormat:@"My age is %d", 10];//基本不用;
3) 从文件中读取
NSString *str4 = [NSString stringWithContentsOfFile:@"/Users/apple/Desktop/t.txt" encoding:NSUTF8StringEncoding error:&err];
4) 从URL中读取
传入完整的字符串创建
NSURL *url = [NSURL URLWithString:@"file:///Users/apple/Desktop/str.txt"];
通过文件路径创建(默认就是file协议的)
NSURL *url = [NSURL fileURLWithPath:@"/Users/apple/Desktop/str.txt"];
通过NSString进行文件读写
****方式一, 直接根据给定的路径来读写文件(一般用来读取本地文件)
*文件写入: [str1 writeToFile:@"路径" atomically:YES
encoding:NSUTF8StringEncoding error:nil];
*文件读取: [NSString stringWithContentsOfFile:@"路径"
encoding:NSUTF8StringEncoding error:nil];
****方式二, 根据给定的NSURL对象来读写文件(一般用来读取网络资源文件) **** 1> 根据路径创建NSURL对象。
** 创建NSURL的两种方式:
1. NSURL *url = [NSURL URLWithString:@"file:///Users/Steve/Desktop/传智iOS13 期-OC基础加强/PPTs/str1.txt"];
** 通过这种方式创建NSURL对象, 需要指定协议类型, 比如"http://" 、 "ftp://" 、 "file://" 、"https://"等协议。
** 通过这种方式创建的NSURL, 如果路径中有中文, 则无法正常使用, 需要使用下面的方 式来创建。
2. NSURL *url = [NSURL fileURLWithPath:@"/Users/Steve/Desktop/传智iOS13期-OC基 础加强/PPTs/str1.txt"];
** 这种方式创建的NSURL对象, 默认就是读取本地文件的NSURL对象, 以"file://" 开头
2> 根据NSURL对象来读取文件内容。
* [NSString stringWithContentsOfURL:url encoding:NSUTF8StringEncoding error:
&err];
5> NSString的常见方法:
- (NSString *)uppercaseString; //全部字符转为大写字母
- (NSString *)lowercaseString //全部字符转为小写字母
- (NSString *)capitalizedString
//首字母变大写,其他字母都变小写。如果一个句子中有多个单词,那么会将每个单词的首字母 变成大写,其余字母变成小写
- (BOOL)isEqualToString:(NSString *)aString; //两个字符串的内容相同就返回YES, 否则返回NO
//注意: == 比较的是两个对象的地址是否相同, 不是字符串内容
- (NSComparisonResult)compare:(NSString *)string; 这个方法可以用来比较两个字符串内容的大小
//比较方法: 逐个字符地进行比较ASCII值,返回NSComparisonResult作为比较结果
NSComparisonResult是一个枚举,有3个值:
如果左侧 > 右侧,返回NSOrderedDescending,
如果左侧 < 右侧,返回NSOrderedAscending,
如果左侧 == 右侧返回NSOrderedSame
- (NSComparisonResult) caseInsensitiveCompare:(NSString *)string; 忽略大小写进行比较,返回值与compare:一致
- (BOOL)hasPrefix:(NSString *)aString; 是否以aStr
对比NSString:
都创建一个字符创
NSString *s1 = [NSString stringWithFormat:@“age is %d”,10];
NSMutableString *s2 = [NSMutableString stringWithFormat:@“age is %d”,10];
因为s1是固定不变的,所以s1一直是 age is 10;
而s2是可变的 所以我们可以在后面加字符创如:
[s2 appendString:@“11 12”];//这是个给字符串加字符的函数;
这样s2这个字符串就变成了 age is 10 11 12;
我们既然可以加字符 也可以删除字符 例如 :
[s2 deleteCharactersInRange:NSMakeRange(4,2)];//这是表示将一个范围的字符串删除;
经过上述操作之后,我们的age is 10 中的10就会被删除了;当然我们要准确的找出要删除的内容 我们通常还会用到一个
rangeOfString这个函数
1. NSRange range = [s2 rangeOfString :@“is”];这就表示获取字符串中is的范围;
2.[s2 deleteCharactersInRange:range];//删除is字符串;
1.NSArray的创建:
NSArray *array1 = [NSArray arrayWithObject:@“jack” ,“rose”,nil;]//这就表示创建了一个OC数组 里面有一个元素jack
快速创建的方法:
NSArray *array2 = @[p,@“jack”]//p使我们创建的对象;
//nil是表示前面的是数组的元素作为结束标志;
2.NSArray的元素个数:
array.count == [array count];就像是调用方法;
NSArray中元素的访问:
跟c语言中的数组访问一样 array[0],表示第一个元素;
遍历数组:
1.for int i = 0 ;i<array.count;i++{
NSLog(@“%@”,array[i]);
}
2.for (id obj in array)
{
//找出obj元素在数组中的位置;
NSUIntege i= [array indexOfObject:obj];
NSLog(@“%ld - %@”,i,obj);
}
3.[array enumerateObjectsUsingBlock]:
^(id obj,NSUInteger idx,BOOL *stop)
{
NSLog(@“%ld - %@”,idx,obj);
}
NSString:不可变字符串:
字符串的创建方式:
1) 最直接的方式(这是常量字符串):注意这种写法,字符串存储在内存的常量区,地址一样;
NSString *str1 = @"abc";
2) 格式化的方式:注意这种写法,字符串存储在内存的堆区(地址不一样)
NSString *str2 = [NSString stringWithFormat:@"%@", @"jack"];
NSString *str3 = [[NSString alloc] initWithFormat:@"My age is %d", 10];//基本不用;
3) 从文件中读取
NSString *str4 = [NSString stringWithContentsOfFile:@"/Users/apple/Desktop/t.txt" encoding:NSUTF8StringEncoding error:&err];
4) 从URL中读取
传入完整的字符串创建
NSURL *url = [NSURL URLWithString:@"file:///Users/apple/Desktop/str.txt"];
通过文件路径创建(默认就是file协议的)
NSURL *url = [NSURL fileURLWithPath:@"/Users/apple/Desktop/str.txt"];
通过NSString进行文件读写
****方式一, 直接根据给定的路径来读写文件(一般用来读取本地文件)
*文件写入: [str1 writeToFile:@"路径" atomically:YES
encoding:NSUTF8StringEncoding error:nil];
*文件读取: [NSString stringWithContentsOfFile:@"路径"
encoding:NSUTF8StringEncoding error:nil];
****方式二, 根据给定的NSURL对象来读写文件(一般用来读取网络资源文件) **** 1> 根据路径创建NSURL对象。
** 创建NSURL的两种方式:
1. NSURL *url = [NSURL URLWithString:@"file:///Users/Steve/Desktop/传智iOS13 期-OC基础加强/PPTs/str1.txt"];
** 通过这种方式创建NSURL对象, 需要指定协议类型, 比如"http://" 、 "ftp://" 、 "file://" 、"https://"等协议。
** 通过这种方式创建的NSURL, 如果路径中有中文, 则无法正常使用, 需要使用下面的方 式来创建。
2. NSURL *url = [NSURL fileURLWithPath:@"/Users/Steve/Desktop/传智iOS13期-OC基 础加强/PPTs/str1.txt"];
** 这种方式创建的NSURL对象, 默认就是读取本地文件的NSURL对象, 以"file://" 开头
2> 根据NSURL对象来读取文件内容。
* [NSString stringWithContentsOfURL:url encoding:NSUTF8StringEncoding error:
&err];
5> NSString的常见方法:
- (NSString *)uppercaseString; //全部字符转为大写字母
- (NSString *)lowercaseString //全部字符转为小写字母
- (NSString *)capitalizedString
//首字母变大写,其他字母都变小写。如果一个句子中有多个单词,那么会将每个单词的首字母 变成大写,其余字母变成小写
- (BOOL)isEqualToString:(NSString *)aString; //两个字符串的内容相同就返回YES, 否则返回NO
//注意: == 比较的是两个对象的地址是否相同, 不是字符串内容
- (NSComparisonResult)compare:(NSString *)string; 这个方法可以用来比较两个字符串内容的大小
//比较方法: 逐个字符地进行比较ASCII值,返回NSComparisonResult作为比较结果
NSComparisonResult是一个枚举,有3个值:
如果左侧 > 右侧,返回NSOrderedDescending,
如果左侧 < 右侧,返回NSOrderedAscending,
如果左侧 == 右侧返回NSOrderedSame
- (NSComparisonResult) caseInsensitiveCompare:(NSString *)string; 忽略大小写进行比较,返回值与compare:一致
- (BOOL)hasPrefix:(NSString *)aString; 是否以aStr
NSString的子类NSMutableString:可变字符串;
对比NSString:
都创建一个字符创
NSString *s1 = [NSString stringWithFormat:@“age is %d”,10];
NSMutableString *s2 = [NSMutableString stringWithFormat:@“age is %d”,10];
因为s1是固定不变的,所以s1一直是 age is 10;
而s2是可变的 所以我们可以在后面加字符创如:
[s2 appendString:@“11 12”];//这是个给字符串加字符的函数;
这样s2这个字符串就变成了 age is 10 11 12;
我们既然可以加字符 也可以删除字符 例如 :
[s2 deleteCharactersInRange:NSMakeRange(4,2)];//这是表示将一个范围的字符串删除;
经过上述操作之后,我们的age is 10 中的10就会被删除了;当然我们要准确的找出要删除的内容 我们通常还会用到一个
rangeOfString这个函数
1. NSRange range = [s2 rangeOfString :@“is”];这就表示获取字符串中is的范围;
2.[s2 deleteCharactersInRange:range];//删除is字符串;
NSArray:表示一个OC数组,是一个不可变数组
1.NSArray的创建:
NSArray *array1 = [NSArray arrayWithObject:@“jack” ,“rose”,nil;]//这就表示创建了一个OC数组 里面有一个元素jack
快速创建的方法:
NSArray *array2 = @[p,@“jack”]//p使我们创建的对象;
//nil是表示前面的是数组的元素作为结束标志;
2.NSArray的元素个数:
array.count == [array count];就像是调用方法;
NSArray中元素的访问:
跟c语言中的数组访问一样 array[0],表示第一个元素;
遍历数组:
1.for int i = 0 ;i<array.count;i++{
NSLog(@“%@”,array[i]);
}
2.for (id obj in array)
{
//找出obj元素在数组中的位置;
NSUIntege i= [array indexOfObject:obj];
NSLog(@“%ld - %@”,i,obj);
}
3.[array enumerateObjectsUsingBlock]:
^(id obj,NSUInteger idx,BOOL *stop)
{
NSLog(@“%ld - %@”,idx,obj);
}
NSMutableArray:NSArray的子类 是一个不可变数组
NSDictionary:表示OC中的不可变字典:
NSMutableDictionary:NSDictionary的子类 是一个可变字典
NSNumber
1.将各种基本数据类型包装成NSNumber对象.
2.将NSNumber对象转化成基本数据类型
3.将基本数据类型快速包装成NSNumber对象
0 0
- 黑马程序员-----OC学习之Foundation中的类
- 黑马程序员-----OC学习之Foundation中的结构体
- 黑马程序员:OC学习日记之Foundation
- 黑马程序员--OC学习篇之Foundation框架中的NSString对象和NSMutableString对象
- 黑马程序员--OC学习篇之Foundation框架中的NSArray对象和NSMutableArray对象
- 黑马程序员学习笔记-OC之foundation框架
- 黑马程序员-----oc语言学习笔记之foundation框架-NSString
- 黑马程序员-----oc语言学习笔记之foundation-NSArray
- [黑马程序员][OC]Foundation框架中的集合类
- 黑马程序员——OC中的Foundation
- 黑马程序员 OC-------Foundation学习小结
- 黑马程序员---OC基础---Foundation框架学习
- 黑马程序员——OC学习之Foundation框架常用类的常用方法
- 黑马程序员--OC之Foundation框架
- 黑马程序员---oc Foundation
- 黑马程序员---OC Foundation框架--集合类
- 黑马程序员IOS-OC语言-Foundation-类
- 黑马程序员——ios开发基础之OC中的Foundation框架(一)
- Mac系统如何在Finder标题栏显示当前文件夹路径?
- 恶补计算机基础知识 补码 进制 基本数据类型字节
- IOS block
- 用网线连接电脑进行文件互传
- onWindowFocusChanged重要作用 and Activity生命周期
- 黑马程序员-----OC学习之Foundation中的类
- 升级安卓开发环境到Android Studio和Genymotion
- 一个线程的死锁情况
- iptables 如何只开放80 和 22端口
- Nginx 优化指南
- hash_set和hash_map
- Linux查看系统开机时间
- 两个Activity之间跳转时,生命周期的执行顺序
- aauto学习系列之<5>:操作符