优三帝同学

上善若水,人淡如菊

嗨,我是优三帝 (@onevcat),一名 Unity 开发者。


欢迎访问我的博客~

关于 NSURL 的解析和编码

NSURL毫无疑问是常用类,有时候我们需要对一个url进行分析整理,当然是可以按照RFC 1808的定义去自己分析,但是万能的Apple大大已经在SDK里扔了不少方法来帮助解析一个url了…方便又快捷呐~比如下面的输入:

NSURL *url = [NSURL URLWithString:
 @"http://www.onevcat.com/2011/11/debug/;param?p=307#more-307"];
NSLog(@“Scheme: %@”, [url scheme]);
NSLog(@“Host: %@”, [url host]);
NSLog(@“Port: %@”, [url port]);
NSLog(@“Path: %@”, [url path]);
NSLog(@“Relative path: %@”, [url relativePath]);
NSLog(@“Path components as array: %@”, [url pathComponents]);
NSLog(@“Parameter string: %@”, [url parameterString]);
NSLog(@“Query: %@”, [url query]);
NSLog(@“Fragment: %@”, [url fragment]);

将得到以下输出:

没什么值得多说的~相当方便就能得到所要结果的方法~ 另外,在由NSString生成NSURL对象时,有可能会出现NSString中包含百分号各类括号冒号等对于url来说的非法字符如果直接进行转换的话将得到nil。在对于复杂url进行转换前,可以先试试对待转换的NSString发送 stringByAddingPercentEscapesUsingEncoding: 将其转换为合法的url字符串(其实目的就是保证非法字符用UTF8编码..) 比如这样:

NSString *fixedStr = [reqStr stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
Buy me a coffeeBuy me a coffee
最近的文章

Objective-C中的Debug表达式

有程序的地方就有bug,有bug的地方就需要debug。对于程序员来说,coding的过程便是制造bug和解决bug。Objective定义了不少表达式来协助debug的流程,将这些表达式用在NSLog中,可以简化部分工作,快速定义到debug的部分。 比如以下代码:-(id) initWithPlayer:(VVPlayer *)aPlayer seatsNum:(int)seatsNum{ if (self = [super init]){NSLog(@”\n Function: %s...…

能工巧匠集继续阅读
更早的文章

Xcode4.2的debug小技巧

GNU Debugger(gdb)一直是UNIX下最为流行的调试器,而在Cocoa框架中也一直被作为默认的调试工具。在gcc都被LLVM取代了的如今,gdb还是作为默认调试器,更可见其优秀特性。最近在调试过程中发现了一些小窍门或者说是小技巧,不敢独飨。也许调试在大多数人看来不过是切断点,run程序,断住,然后开始分析。很多时候我们需要在gdb中一行行敲命令去控制gdb的运行,而如果我们右击代码段左侧的断点标记,可以发现一个很有趣的菜单,那就是Edit Breakponit。然后你会发现,原...…

能工巧匠集继续阅读