Joe*_*Joe 4 macros objective-c
我来自一个没有宏的地方(Java/Python/C#/ Scala),所以也许我的观点是扭曲的,但......
为什么在Cocoa中使用宏?想到的两个是NSLocalizedString和NSAssert(和STAssert).将这些功能(可以内联)变得如此困难/不合适?我想我发现它们有点离奇是对C的不必要的回击(是的,我熟悉Obj-C的血统书).
它只是在当天完成的事情还是有特定的原因?
一般来说,最好避免使用宏,但对于提供的功能NSAssert(),你不能这样做.
如果你看一下定义,你会看到它使用了__LINE__,__FILE__,_cmd并self从它在使用的情况下,如果它不是一个宏,就无法获得这些信息.
对于NSLocalizedString不过,我看不出有什么明显的原因.
| 归档时间: |
|
| 查看次数: |
1122 次 |
| 最近记录: |