💡
原文英文,约200词,阅读约需1分钟。
📝
内容提要
本文讨论了如何在iOS 7中为NSString添加containsString:方法。虽然Apple在iOS 8中引入了该方法,但作者希望在iOS 7及以下版本中以最小侵入的方式实现。通过使用__attribute__((constructor)),可以确保在iOS 8及以上版本中不编译此代码,从而实现兼容性。
🎯
关键要点
- Daniel Eggert在Twitter上询问如何为iOS 7中的NSString添加containsString:方法。
- Apple在iOS 8中引入了containsString:方法,简化了代码的可读性。
- 作者希望以最小侵入的方式在iOS 7及以下版本中实现该方法。
- 使用__attribute__((constructor))可以确保在iOS 8及以上版本中不编译此代码。
- 这种方法被认为是对遗留操作系统的最小侵入性补丁。
❓
延伸问答
如何在iOS 7中为NSString添加containsString:方法?
可以通过创建一个类别并使用__attribute__((constructor))来实现,以确保在iOS 8及以上版本中不编译此代码。
Apple在iOS 8中对NSString做了什么改动?
Apple在iOS 8中引入了containsString:方法,使代码更简洁易读。
使用__attribute__((constructor))有什么风险?
虽然使用__attribute__((constructor))通常被认为是不好的做法,但在这种情况下,它是为了在遗留操作系统上进行最小侵入性补丁。
为什么要在iOS 7中实现containsString:方法?
因为iOS 7及以下版本没有此方法,开发者希望以最小侵入的方式提供相同的功能。
如何确保代码在iOS 8及以上版本不被编译?
通过设置最低部署目标为iOS 8,使用__attribute__((constructor))可以确保代码不会被编译。
在iOS 7中使用containsString:方法的好处是什么?
使用containsString:方法可以使代码更简洁,提升可读性,减少常见代码的复杂性。
➡️