优三帝同学

上善若水,人淡如菊

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


欢迎访问我的博客~

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\n Pretty function: %s\n Line: %d\n File: %s\n Object: %@”,__func__, __PRETTY_FUNCTION__, __LINE__, __FILE__, aPlayer);
}
…
}

输出结果为:

__func__, __PRETTY_FUNCTION__, __LINE__, __FILE__等都是系统预留的定义词,简单易用。

另外有一些Core Foundation的方法可以从CFString的层级拿到一些有用的字符串,包括且不限于selector,class,protocol等,参考下面的代码:

-(id) initWithPlayer:(VVPlayer *)aPlayer seatsNum:(int)seatsNum
{ if (self = [super init])
{
NSLog(@”Current selector: %@”, NSStringFromSelector(_cmd));
NSLog(@”Object class: %@”, NSStringFromClass([self class]));
NSLog(@”Filename: %@”, [[NSString stringWithUTF8String:__FILE__] lastPathComponent]);
}
…
}

输出结果为:

拿到了相关的字符串,其实这并不仅在调试中有用,在进行selector的传递时也很好用~

Buy me a coffeeBuy me a coffee
最近的文章

别了,耐萨里奥

耐萨里奥,艾泽拉斯最强大的生物之一,受到泰坦祝福的大地守护者,黑龙领袖。他一直是睿智、高贵、沉着和强大力量的象征。在燃烧军团第一次入侵时,他率领了五色巨龙军团协助暗夜精灵抗击恶魔。也正是那时,他提议五大龙族领袖将力量注入巨龙之魂中,以抵抗军团。而不幸的是,在无数恶魔的萦绕下,在无尽的战斗中,在古老邪神的诱惑下,他癫狂了——他的身体一块块裂开,赤红的火焰从身体的裂缝中喷涌出来,他调转龙头,赶走了其他四色巨龙领袖。正是从此刻开始,他有了一个新的名字,死亡之翼。11月30日凌晨3时,WOW美服开...…

胡言乱语集继续阅读
更早的文章

关于 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]);NSLo...…

能工巧匠集继续阅读