博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
《慕客网:IOS基础入门之Foundation框架初体验》学习笔记 <一>
阅读量:6345 次
发布时间:2019-06-22

本文共 6813 字,大约阅读时间需要 22 分钟。

hot3.png

Foundaton基础

framework框架

 

1.Foundation框架的类结构关系

1 int main(int argc, const char * argv[]) { 2     @autoreleasepool { 3         //C语言字符串 4         char *ch = "Hello objective-c"; 5         NSString *ns = @"Hello c"; 6         //OC、C语言之间的转换 7         //C语言->OC语言 8         NSString *oc = [NSString stringWithUTF8String:ch]; 9         NSLog(@"转为oc语言的字符串:%@",oc);10         //OC语言->C语言11         const char *c = [ns UTF8String];12         NSLog(@"转为c语言的字符串:%s",c);13     }14     return 0;15 }

 

1 int main(int argc, const char * argv[]) { 2     @autoreleasepool { 3         //创建字符串 4         NSString *str1 = @"Hello world1!"; 5         NSString *str2 = [[NSString alloc] init]; 6         str2 = @"Hello world2"; 7         //格式化字符串 8         int a = 10; 9         int b = 20;10         NSLog(@"%@",[NSString stringWithFormat:@"a=%d, b=%d",a,b]);11         //拼接字符串12         NSString *str3 = [str1 stringByAppendingString:str2];13         NSLog(@"%@",str3);14         //大小写转换15         NSString *str4 = @"ABCDEF";16         NSString *str5 = [str4 lowercaseString];17         NSLog(@"%@",str5);18         NSString *str6 = [str5 uppercaseString];19         NSLog(@"%@",str6);20         //前缀后缀的判断21         NSString *str7 = @"www.goodboy.heyang";22         BOOL hasPreFix = [str7 hasPrefix:@"www"];23         if (hasPreFix) {24             NSLog(@"str7有 www 的前缀。");25         }26         BOOL hasSufFix = [str7 hasSuffix:@"heyang"];27         if (hasSufFix) {28             NSLog(@"str7有 heyang 后缀。");29         }30     }31     return 0;32 }

 

 

1 int main(int argc, const char * argv[]) { 2     @autoreleasepool { 3         //判断两个字符串是否相同 4         NSString *str1 = @"Hello"; 5         NSString *str2 = @"Hello"; 6         if ([str1 isEqualToString:str2]) { 7             NSLog(@"两个字符是一致的。"); 8         }else{ 9             NSLog(@"不一致!");10         }11         12         //比较字符串13         //NSComparisonResult需要自己去查阅相关的资料14         15         //分割,按照指定字符分割字符串16         NSString *str3 = @"a,b,c,d,e,f,g";17         NSArray *strArray = [str3 componentsSeparatedByString:@","];18         for(NSString *str in strArray){19             NSLog(@"str = %@",str);20         }21         /*验证正则表达式失败22         NSString *str4 = @"1+2-3/9";23         NSArray *strArray2 = [str4 componentsSeparatedByString:@"[\+\-\*\/]"];24         for(NSString *str in strArray2){25             NSLog(@"str = %@",str);26         }27         */28         //按照范围截取字符串,注意这里是结构体实例,所以不需要指针29         NSRange range = NSMakeRange(1, 5);//前面是截取的起点,后面是长度,于是截取的是1~430         NSString *str5 = [str3 substringWithRange:range];31         NSLog(@"str5 = %@",str5);32         //从某一位开始截取后面的字符串33         NSString *str6 = [str3 substringFromIndex:2];34         NSLog(@"str6 = %@",str6);35         //从开始截取到某一位36         NSString *str7 = [str3 substringToIndex:2];37         NSLog(@"str7 = %@",str7);38         39         //将字符串拆分为每一个字符40         for (int i = 0; i<[str3 length]; i++) {41             NSLog(@"%c ",[str3 characterAtIndex:i]);42         }43     }44     return 0;45 }

 

这是NSRange的源码,NSRange不是一个类,而是一个结构体,所以创建一个结构体就不能用指针,然后注意创建这个NSRange方法就是调用NSMakeRange( int , int )方法。

 

1 int main(int argc, const char * argv[]) { 2     @autoreleasepool { 3         //查找 4         NSString *str1 = @"ab cd ef gh ij ab"; 5         //查找指定字符串的位置 6         NSRange range1 = [str1 rangeOfString:@"ab"]; 7         NSLog(@"%ld 和 %ld",range1.location,range1.length); 8          9         //替换10         NSString *str2 = @"Hello ios,Hello heyang";11         //替换某一个范围的内容12         NSString *str3 = [str2 stringByReplacingCharactersInRange:NSMakeRange(6, 3) withString:@"android"];13         NSLog(@"%@",str3);14         //指定字符串替换源字符串中的字串,前面一个参数是要被替换的内容,后一个参数是替换后的内容15         NSString *str4 = [str2 stringByReplacingOccurrencesOfString:@"Hello" withString:@"你好"];16         NSLog(@"%@",str4);17         18         //读取文件19         //文件来源:1.本地文件 2.网络文件20         //路径类21         NSString *strurl = @"http://www.cnblogs.com/goodboy-heyang/p/4659795.html";22         NSString *strurl2 = @"/Users/HeYang/Desktop/Hello.txt";23         //网络路径24         NSURL *httpurl = [NSURL URLWithString:strurl];25         //本地路径26 //        NSURL *fileurl = [NSURL fileURLWithPath:strurl2];读取本地路径可以不需要URL路径类,直接用路径字符串就可以了27         //读取网络数据28         NSString *httpstr = [NSString stringWithContentsOfURL:httpurl encoding:NSUTF8StringEncoding error:nil];29         NSLog(@"%@",httpstr);30         //读取本地文件31         NSString *filestr = [NSString stringWithContentsOfFile:strurl2 encoding:NSUTF8StringEncoding error:nil];32         NSLog(@"%@",filestr);33         34         //写入文件35         NSString *str5 = @"Hello developer";36         BOOL isok = [str5 writeToFile:@"/Users/HeYang/Desktop/Demo.txt" atomically:YES encoding:NSUTF8StringEncoding error:nil];37         if (isok) {38             NSLog(@"文件写入成功~");39         }else{40             NSLog(@"文件写入失败~");41         }42     }43     return 0;44 }

 

实战演练:查找天气预报城市列表的某一个城市:"玉山"以及它在城市列表中的序号。天气预报城市列表的网址:http://api.k780.com:88/?app=weather.city&&appkey=10003&sign=b59bc3ef6191eb9f747dd4e83c99f2a4&format=json

要求:两种方式:1⃣️本地文件查找2⃣️网络数据加载后查找

1⃣️本地文件查找方式:

先通过这个城市列表的网址获取所有关于城市的列表数据,然后复制粘贴到新建的纯文本记事本上,保存到桌面上,文件名为:file.txt

然后通过应用前面的基础:

1 #import 
2 3 int main(int argc, const char * argv[]) { 4 @autoreleasepool { 5 //路径,在桌面创建一个file.txt纯文本,然后通过终端可以获取完整路径 6 NSString *filepath = @"/Users/HeYang/Desktop/file.txt"; 7 //读取本地文件数据存储在一个NSString对象中: 8 NSString *filestr = [NSString stringWithContentsOfFile:filepath encoding:NSUTF8StringEncoding error:nil]; 9 NSRange range = [filestr rangeOfString:@"玉山"];10 NSLog(@"%ld 和 %ld",range.location,range.length);11 NSRange findrange = NSMakeRange(range.location-33, 76);12 NSString *findstr = [filestr substringWithRange:findrange];13 NSLog(@"%@",findstr);14 15 }16 return 0;17 }

运行结果:

2⃣️网络数据加载后查找

开始出现了错误。

 

纠正之后:

 

1 int main(int argc, const char * argv[]) { 2     @autoreleasepool { 3         //获取网络路径 4         NSString *strurl = @"http://api.k780.com:88/?app=weather.city&&appkey=10003&sign=b59bc3ef6191eb9f747dd4e83c99f2a4&format=json"; 5         NSURL *url = [NSURL URLWithString:strurl]; 6          7         NSString *httpstr = [NSString stringWithContentsOfURL:url encoding:NSUTF8StringEncoding error:nil]; 8         //然后是查找“玉山” 9         NSRange range = [httpstr rangeOfString:@"玉山"];10         NSLog(@"%ld 和 %ld",range.location,range.length);11         12         //然后是查找"玉山"的前后全面信息,这个需要不断更改range的起点位置和长度13         //纠正一下,这里虽然目的是查找,但是实际上是截取目标位置和长度的字符串,所以用的是截取方法14         NSRange range1 = NSMakeRange(range.location-33, 76);15         NSString *findstr = [httpstr substringWithRange:range1];16         NSLog(@"%@",findstr);17     }18     return 0;19 }

运行结果是:

 

 

 

转载于:https://my.oschina.net/u/2363463/blog/635586

你可能感兴趣的文章
发送arp数据包
查看>>
安卓学习-媒体播放
查看>>
python使用ftp上传文件
查看>>
缓存数据库Memcache
查看>>
MMU的作用及工作过程
查看>>
ASP.NET Core MVC 模型绑定用法及原理
查看>>
使用 libdvm.so 内部函数dvm* 加载 dex
查看>>
数组中出现次数超过一半的数字
查看>>
PostgreSQL -- 系统参数类型与设置
查看>>
记一次lnmp 502故障
查看>>
mybatis异常 :元素内容必须由格式正确的字符数据或标记组成。
查看>>
RHEL7/CENTOS7
查看>>
【小松教你手游开发】【unity实用技能】NGUI Depth探索
查看>>
Luogu P2444 病毒___AC自动机+dfs
查看>>
solidity智能合约[51]-安全—dos***
查看>>
dubbo源码分析-集群容错(二)
查看>>
【Oracle 12c】最新CUUG OCP-071考试题库(55题)
查看>>
Docker搭建ELK日志监控
查看>>
经济日报 | SAP:对中国市场未来发展充满信心
查看>>
系统启动流程
查看>>