美文网首页iOS Swift 学习手册
替换if else的一种方式

替换if else的一种方式

作者: 熊妹妹 | 来源:发表于2016-07-20 22:29 被阅读237次

最近遇到这样一个场景:丢给我一个对象,我要判断它在不在我需要的类范围内。常规就是写if else来逐一判断,但今天我用了另外一种方式。

大概思路:我用类的名字和声明方法,然后判断self是否能响应这个方法,如果能响应就说明这个类是我需要的。在声明方法时为了让代码看起来简洁一点我用了宏定义。我把类名作为参数,用宏定义了一个方法,如下:

#define traceClass(c)\
- (id)trace##c:(id)obj {\
    return nil;\
}\

这样定以后,我再声明的方法的时候就可以清晰看到我需要哪些类,如下:

traceClass(ClassA)
traceClass(ClassB)
traceClass(ClassC)

这样我一目了然,三行代码替换宏定义就是三个方法。

但在实际使用中我比这要复杂很多,在方法的实现里面可以继续套用这种方式,最后写出一段我自己都感觉有点绕的代码。

听说很多人就是靠写让人看不懂的代码装逼的~

相关文章

网友评论

    本文标题:替换if else的一种方式

    本文链接:https://www.haomeiwen.com/subject/mutbjttx.html