我在类中有一些类方法,名字很长(确切地说是TimingConfigController),我经常从类中调用这些方法(例如:[TimingConfigController intervalStringAt:i]),但长类名称困扰我,因为所有内联的语句都会变得非常长且不易阅读.
我正在读书,看看我是否能找到一个速记替代品,我在developer.apple.com上发现了这篇文章: 定义一个类
它说,除其他外,它
id newInstance = [[self alloc] init];
Run Code Online (Sandbox Code Playgroud)
是一个很好的方法来创建一个与自己相同的类的对象.据我所知,该语句使用自指针而不是类名称调用类方法,所以我在我的应用程序中尝试了,虽然它可能有用,但它会给出编译器警告.我真的不想发出警告.
那么,我的问题是,使用self来调用类方法可能和/或一个好主意?还有更好的选择吗?在.m文件的开头做一个#define Self TimingConfigController会不会很糟糕?或者我应该只服用药物并忍受烦恼?
self只表示类方法中的类.因为类方法的目标是一个类,所以self表示该类.
例如,在+ (void)initialize方法内部,通常会看到:
+ (void)initialize {
if (self == [MyClass class]) { // <- self is the current class
// ...
}
}
Run Code Online (Sandbox Code Playgroud)
如果你真的想在没有重命名的情况下缩短类名,最简单的解决方案是使用一个#define语句:
#define TCC TimingConfigController
// The two lines are equivalent
id result1 = [TimingConfigController theClassMethod];
id result1 = [TCC theClassMethod];
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1336 次 |
| 最近记录: |