在Objective-C中,如何防止类别方法中的名称冲突?

Boo*_*oon 4 objective-c

有些人使用前缀来命名他们的类别方法,以防止与其他外部代码发生可能的名称冲突,但我个人发现将噪声添加到一个清晰的名称.是否有更好的方法来避免类别名称冲突而不是前缀?

例如

@interface UILabel (Extras)
-(void)prefix_extraMethod;
@end
Run Code Online (Sandbox Code Playgroud)

Luc*_*rdi 16

在Objective-C中不存在名称空间,因此唯一的方法是为您的方法添加前缀.

如果不想使用前缀(我同意你......很难看),如果方法名称与其他现有方法冲突,则OBJC_PRINT_REPLACED_METHODS环境变量YES可以接收警告.

设置环境变量


Jon*_*pan 6

不.前缀是这样做的方法.

  • @GregoryHigley:我发现箭头操作符很丑,但我仍然在C和C++中使用它,因为它是语言的一部分,使用它是约定(而不是使用等效的`(*).`).逆势而不是赢得任何积分. (2认同)