在iOS 7中为containsString:方法进行改造

在iOS 7中为containsString:方法进行改造

💡 原文英文,约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:方法可以使代码更简洁,提升可读性,减少常见代码的复杂性。

➡️

继续阅读