IOS NSURL基本操作-备

NSURL其实就是我们在浏览器上看到的网站地址,这不就是一个字符串么,为什么还要在写一个NSURL呢,主要是因为网站地址的字符串都比较复杂,包括很多请求参数,这样在请求过程中需要解析出来每个部门,所以封装一个NSURL,操作很方便:

  1. NSURL *url = [NSURL URLWithString:@"http://www.baidu.com/s?tn=baiduhome_pg&bs=NSRUL&f=8&rsv_bp=1&rsv_spt=1&wd=NSurl&inputT=2709"];
  2. NSLog(@"Scheme: %@", [url scheme]);
  3. NSLog(@"Host: %@", [url host]);
  4. NSLog(@"Port: %@", [url port]);
  5. NSLog(@"Path: %@", [url path]);
  6. NSLog(@"Relative path: %@", [url relativePath]);
  7. NSLog(@"Path components as array: %@", [url pathComponents]);
  8. NSLog(@"Parameter string: %@", [url parameterString]);
  9. NSLog(@"Query: %@", [url query]);
  10. NSLog(@"Fragment: %@", [url fragment]);
  11. NSLog(@"User: %@", [url user]);
  12. NSLog(@"Password: %@", [url password]);

结果:

    1. 2012-08-29 15:52:23.781 NSurl[3560:f803] Scheme: http
    2. 2012-08-29 15:52:32.793 NSurl[3560:f803] Host: www.baidu.com
    3. 2012-08-29 15:52:39.102 NSurl[3560:f803] Port: (null)
    4. 2012-08-29 15:52:42.590 NSurl[3560:f803] Path: /s
    5. 2012-08-29 15:52:52.516 NSurl[3560:f803] Relative path: /s
    6. 2012-08-29 15:53:05.576 NSurl[3560:f803] Path components as array: (
    7. "/",
    8. s
    9. )
    10. 2012-08-29 15:53:32.861 NSurl[3560:f803] Parameter string: (null)
    11. 2012-08-29 15:53:37.528 NSurl[3560:f803] Query: tn=baiduhome_pg&bs=NSRUL&f=8&rsv_bp=1&rsv_spt=1&wd=NSurl&inputT=2709
    12. 2012-08-29 15:53:52.942 NSurl[3560:f803] Fragment: (null)
    13. 2012-08-29 15:53:54.539 NSurl[3560:f803] User: (null)
    14. 2012-08-29 15:53:57.808 NSurl[3560:f803] Password: (null)

1:NSURL初始化方法:

  1. NSURL *url=[NSURL URLWithString:@"http://www.baidu.com?id=1"];

2:解决NSURL初始化失败的相关解决方案.

将传进来的NSString 进行 UTF8 转码即可.

1:针对 URLWithString 初始化失败的解决方案

  1. NSString *strLocalHtml = @"file:///Users/amarishuyi/Desktop/My IPhone Life/WebDeveloper/WebPlug-in/ExtEditor/DataPage/KMQT/Ext-HTMLEditor.html";
  2. strLocalHtml = [NSString stringWithFormat:@"%@?Value=%@",strLocalHtml,self.txtUrl.text];
  3. strLocalHtml= [strLocalHtml stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
  4. NSURL * url=[NSURL URLWithString:strLocalHtml];

2:针对 fileURLWithPath 初始化失败的解决方案

  1. self.filePathString = [self.filePathString stringByReplacingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
  2. NSURL *url = [NSURL fileURLWithPath:self.filePathString];

转码成功后 会自动 在字符串左侧添加 "file:///"

3:NSURL 成功初始化后可以获取的参数 (摘自:NSURL 学习 )

  1. NSURL *url = [NSURL URLWithString:  @"http://www.baidu.com/s?tn=baiduhome_pg&bs=NSRUL&f=8&rsv_bp=1&rsv_spt=1&wd=NSurl&inputT=2709"];
  2. NSLog(@"Scheme: %@", [url scheme]);
  3. NSLog(@"Host: %@", [url host]);
  4. NSLog(@"Port: %@", [url port]);
  5. NSLog(@"Path: %@", [url path]);
  6. NSLog(@"Relative path: %@", [url relativePath]);
  7. NSLog(@"Path components as array: %@", [url pathComponents]);
  8. NSLog(@"Parameter string: %@", [url parameterString]);
  9. NSLog(@"Query: %@", [url query]);
  10. NSLog(@"Fragment: %@", [url fragment]);
  11. NSLog(@"User: %@", [url user]);
  12. NSLog(@"Password: %@", [url password]);

结果如下:

  1. 2012-03-31 18:22:20.904 SmallDemoList[5473:11603] 12131232
  2. 2012-03-31 18:22:20.907 SmallDemoList[5473:11603] Scheme: http
  3. 2012-03-31 18:22:20.907 SmallDemoList[5473:11603] Host: www.baidu.com
  4. 2012-03-31 18:22:20.907 SmallDemoList[5473:11603] Port: (null)
  5. 2012-03-31 18:22:20.907 SmallDemoList[5473:11603] Path: /s
  6. 2012-03-31 18:22:20.907 SmallDemoList[5473:11603] Relative path: /s
  7. 2012-03-31 18:22:20.907 SmallDemoList[5473:11603] Path components as array: (
  8. "/",
  9. s
  10. )
  11. 2012-03-31 18:22:20.916 SmallDemoList[5473:11603] Parameter string: (null)
  12. 2012-03-31 18:22:20.917 SmallDemoList[5473:11603] Query: tn=baiduhome_pg&bs=NSRUL&f=8&rsv_bp=1&rsv_spt=1&wd=NSurl&inputT=2709
  13. 2012-03-31 18:22:20.917 SmallDemoList[5473:11603] Fragment: (null)
  14. 2012-03-31 18:22:20.917 SmallDemoList[5473:11603] User: (null)
  15. 2012-03-31 18:22:20.917 SmallDemoList[5473:11603] Password: (null)

4:根据文件名称和文件后缀获取程序包内容文件的路径

NSURL *urlKindEditor = [[NSBundlemainBundle]URLForResource:@"simple"withExtension:@"html"subdirectory:@"KindEditor/examples"];

URLForResource:文件名称

withExtension:文件后缀

subdirectory:在程序包中的哪个子目录中寻找.

如果没有找到将会返回nil

找到后返回如下路径: file://localhost/Users/amarishuyi/Library/Application Support/iPhone Simulator/5.1/Applications/FB0CDABC-D0E2-45FF-AA2C-959E8A65ADB4/SmallDemoList.app/KindEditor/examples/simple.html

时间: 2024-12-19 12:22:01

IOS NSURL基本操作-备的相关文章

IOS NSURL基本操作

NSURL其实就是我们在浏览器上看到的网站地址,这不就是一个字符串么,为什么还要在写一个NSURL呢,主要是因为网站地址的字符串都比较复杂,包括很多请求参数,这样在请求过程中需要解析出来每个部门,所以封装一个NSURL,操作很方便: [cpp] view plaincopy NSURL *url = [NSURL URLWithString:@"http://www.baidu.com/s?tn=baiduhome_pg&bs=NSRUL&f=8&rsv_bp=1&

IOS SQLite基本操作

再所有操作之前先添加libsqlite这个库以及引入sqlite3.h头文件 一,创建数据库打开数据库,关闭数据库 NSString *sqlPath = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) lastObject]; sqlPath = [_sqlPath stringByAppendingPathComponent:@"students.sqlite"]; s

GoBelieve IOS SDK接入备忘

项目配置 在工程target的"Build Settings"中,找到"Linking"的"Other Linker Flags",添加参数-ObjC. IMSDK imsdk只包含消息基础通讯功能 初始化IM 启动im服务只需要设置用户的access token,调用启动接口并添加消息的监听对象. [IMService instance].deviceID = [[[UIDevice currentDevice] identifierForVe

Effective objective-c 2.0阅读笔记

这本书非常的好,看完后,感触挺深,总结纪录一下,针对ios开发的备忘: 注:分类和原著有些不同,自己总结学习用的,仅供参考. 系统篇: 了解oc起源:继承c,由Smalltalk演化而来.动态语言,运行期决.需要熟悉c语言. 6.  理解变量属性 a.原子性 b.读写 c.内存管理语义 d.方法名 .尽量少用atomic .注意使用copy属性避免数据安全问题. 还有oc动态语言特性,硬编码问题.类内部不要直接访问变量. 7.  还是重复了上一篇:在对象内部尽量直接访问实例变量.a.快,没有派发

iOS开发中NSURL的基本操作

1.URL URL是对可以从互联网上得到的资源的位置和访问方法的一种简洁的表示,是互联网上标准资源的地址.互联网上的每个文件都有一个唯一的URL,它包含的信息指出文件的位置以及浏览器应该怎么处理它. URL可能包含远程服务器上的资源的位置,本地磁盘上的文件的路径,甚至任意一段编码的数据. 2.NSURL NSURL其实就是我们在浏览器上看到的网站地址,这不就是一个字符串么,为什么还要在写一个NSURL呢? 主要是因为网站地址的字符串都比较复杂,包括很多请求参数,这样在请求过程中需要解析出来每个部

iOS 数据持久化之CoreData(二)堆栈建立和基本操作Demo

原创Blog,转载请注明出处 blog.csdn.net/hello_hwc 欢迎关注我的iOS SDK详解专栏 http://blog.csdn.net/column/details/huangwenchen-ios-sdk.html 前言:本文会通过一个完整的工程创建,讲解 CoreData的堆栈创建 四种基本的操作(查询,创建,删除,更新) 简单的MVC设计 如何使用Block传递Action,缩减代码量 再CoreData使用类别扩展NSManagedObject方法 Demo下载 ht

iOS开发多线程篇 10 —NSOperation基本操作

iOS开发多线程篇—NSOperation基本操作 一.并发数 (1)并发数:同时执?行的任务数.比如,同时开3个线程执行3个任务,并发数就是3 (2)最大并发数:同一时间最多只能执行的任务的个数. (3)最?大并发数的相关?方法 - (NSInteger)maxConcurrentOperationCount;- (void)setMaxConcurrentOperationCount:(NSInteger)cnt; 说明:如果没有设置最大并发数,那么并发的个数是由系统内存和CPU决定的,可能

iOS开发多线程篇—NSOperation基本操作

iOS开发多线程篇—NSOperation基本操作 一.并发数 (1)并发数:同时执?行的任务数.比如,同时开3个线程执行3个任务,并发数就是3 (2)最大并发数:同一时间最多只能执行的任务的个数. (3)最?大并发数的相关?方法 - (NSInteger)maxConcurrentOperationCount;- (void)setMaxConcurrentOperationCount:(NSInteger)cnt; 说明:如果没有设置最大并发数,那么并发的个数是由系统内存和CPU决定的,可能

Hybrid----优秀开源代码解读之JS与iOS Native Code互调的优雅实现方案-备

本篇为大家介绍一个优秀的开源小项目:WebViewJavascriptBridge. 它优雅地实现了在使用UIWebView时JS与ios 的ObjC nativecode之间的互调,支持消息发送.接收.消息处理器的注册与调用以及设置消息处理的回调. 就像项目的名称一样,它是连接UIWebView和Javascript的bridge.在加入这个项目之后,他们之间的交互处理方式变得很友好. 在native code中跟UIWebView中的js交互的时候,像下面这样: [cpp] view pla