黑马程序员——Object-C基础(十一)Foundation之结构体、字符串
来源:互联网 发布:世音琴行 淘宝 编辑:程序博客网 时间:2024/04/29 13:53
------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------
Struct:
在Foundation中定义了很多常用结构体类型来简化我们的日常开发,这些结构体完全采用Objective-C定义,和我们自己定义的结构体没有任何区别,之所以由框架为我们提供完全是为了简化我们的开发。常用的结构体有NSRange、NSPoint、NSSize、NSRect等
#import <Foundation/Foundation.h>int main(int argc, const char * argv[]) { /*可变字符串,注意NSMutableString是NSString子类*/ //注意虽然initWithCapacity分配字符串大小,但是不是绝对的不可以超过此范围,声明此变量对性能有好处 NSMutableString *str1= [[NSMutableString alloc] initWithCapacity:10]; [str1 setString:@"hello"];//设置字符串 NSLog(@"%@",str1); //结果:hello [str1 appendString:@",world!"];//追加字符串 NSLog(@"%@",str1); //结果:hello,world! [str1 appendFormat:@"我的年龄是%i。dear,I love you.",18]; NSLog(@"%@",str1); //结果:hello,world!我的年龄是18。dear,I love you. //替换字符串 NSRange range=[str1 rangeOfString:@"dear"]; [str1 replaceCharactersInRange:range withString:@"Honey"]; NSLog(@"%@",str1); //结果:hello,world!我的年龄是18。Honey,I love you. //插入字符串 [str1 insertString:@"My name is Kenshin." atIndex:12]; NSLog(@"%@",str1); //结果:hello,world!My name is Kenshin.我的年龄是18。Honey,I love you. //删除指定字符串 [str1 deleteCharactersInRange:[str1 rangeOfString:@"My name is Kenshin."]];//删除指定范围的字符串 NSLog(@"%@",str1); //结果:hello,world!我的年龄是18。Honey,I love you. return 0;}
NSString:
不可变数组需要注意地方:
- NSArray中只能存放对象,不能存放基本数据类型,通常我们可以通过在基本数据类型前加@进行转换;
- 数组中的元素后面必须加nil以表示数据结束;
- makeObjectsPerformSelector执行数组中对象的方法,其参数最多只能有一个;
- 上面数组操作中无论是数组的追加、删除、截取都没有改变原来的数组,只是产生了新的数组而已;
- 对象的比较除了使用系统自带的方法,我们可以通过自定义比较器的方法来实现;
可变数字注意地方:
- 可变数组中的元素后面必须加nil以表示数据结束;
- 往一个可变数组中添加一个对象,此时这个对象的引用计数器会加1,当这个对象从可变数组中移除其引用计数器减1。同时当整个数组销毁之后会依次调用每个对象的releaes方法。
- 在不可变数组中无论对数组怎么排序,原来的数组顺序都不会改变,但是在可变数组中如果使用sortUsingSelector:排序原来的数组顺序就发生了变化。
#import <Foundation/Foundation.h>/* NSString : 不可变字符串 NSMutableString : 可变字符串 */int main(){ NSMutableString *s1 = [NSMutableString stringWithFormat:@"my age is 10"]; // 拼接内容到s1的后面 [s1 appendString:@" 11 12"]; // 获取is的范围 NSRange range = [s1 rangeOfString:@"is"]; [s1 deleteCharactersInRange:range]; NSString *s2 = [NSString stringWithFormat:@"age is 10"]; NSString *s3 = [s2 stringByAppendingString:@" 11 12"]; NSLog(@"s1=%@, s2=%@", s1, s2); return 0;}void stringExport(){ // 字符串的导出 [@"Jack\nJack" writeToFile:@"/Users/apple/Desktop/my.txt" atomically:YES encoding:NSUTF8StringEncoding error:nil]; NSString *str = @"4234234"; NSURL *url = [NSURL fileURLWithPath:@"/Users/apple/Desktop/my2.txt"]; [str writeToURL:url atomically:YES encoding:NSUTF8StringEncoding error:nil];}void stringCreate(){ /* 1.字符串的创建 */ NSString *s1 = @"jack"; //NSString *s2 = [[NSString alloc] initWithString:@"jack"]; NSString *s3 = [[NSString alloc] initWithFormat:@"age is %d", 10]; // C字符串 --> OC字符串 NSString *s4 = [[NSString alloc] initWithUTF8String:"jack"]; // OC字符串 --> C字符串 const char *cs = [s4 UTF8String]; // NSUTF8StringEncoding 用到中文就可以用这种编码 NSString *s5 = [[NSString alloc] initWithContentsOfFile:@"/Users/apple/Desktop/1.txt" encoding:NSUTF8StringEncoding error:nil]; // URL : 资源路径 // 协议头://路径 // file:// // ftp:// // http://weibo.com/a.png // http://www.baidu.com // NSURL *url = [[NSURL alloc] initWithString:@"file:///Users/apple/Desktop/1.txt"]; NSURL *url = [NSURL fileURLWithPath:@"/Users/apple/Desktop/1.txt"]; NSString *s6 = [[NSString alloc] initWithContentsOfURL:url encoding:NSUTF8StringEncoding error:nil]; NSLog(@"s6=\n%@", s6); /* 一般都会有一个类方法跟对象方法配对 [NSURL URLWithString:<#(NSString *)#>]; [NSString stringWithFormat:@""]; [NSString stringWithContentsOfFile:<#(NSString *)#> encoding:<#(NSStringEncoding)#> error:<#(NSError *__autoreleasing *)#>]; */}
0 0
- 黑马程序员——Object-C基础(十一)Foundation之结构体、字符串
- 黑马程序员——Object-C基础(十二)Foundation之字典
- 黑马程序员——IOS基础——Foundation框架——结构体、字符串、数组
- 黑马程序员——Foundation框架之结构体、字符串和集合
- 黑马程序员——Foundation框架:结构体及字符串之NSString
- 黑马程序员——OC基础---Foundation框架之结构体
- 黑马程序员——foundation框架之结构体
- 黑马程序员——Foundation之结构体
- 黑马程序员——Foundation框架之结构体
- 黑马程序员——C语言基础之结构体
- 黑马程序员——c语言基础之结构体
- 黑马程序员---Foundation之常用结构体
- 黑马程序员——ios基础---Objective-C:Foundation
- 黑马程序员——Foundation---结构体,字符串,NSArray,计算代码行数
- 黑马程序员——Foundation框架:字符串之集合类
- 黑马程序员——OC基础---Foundation之NSString
- 黑马程序员——OC基础---Foundation之数组
- 黑马程序员——OC基础---Foundation之字典
- Android四大组件之service(一)——简介
- 【C语言】使用snprintf传递缓存信息时,需要注意的关键点
- 在eclipse SDK中配置Java EE的WEB开发环境
- CF 205 C Little Elephant and Interval(模拟)
- 扩频信号的相关接收
- 黑马程序员——Object-C基础(十一)Foundation之结构体、字符串
- 反汇编之流程控制语句的识别(if语句)
- Git教程参考
- android 机顶盒Launcher开发
- online_judge_1069
- mysql 命令行工具 转
- 跑步,该怎么跑
- 线索二叉树
- zend guard loader 安装