M.R*_*.R. 0 xcode objective-c ios
有时我看到另一个这样的接口声明:
@interface MyCode ()
@end
Run Code Online (Sandbox Code Playgroud)
这不是重复.h文件中的那个吗?
这是Xcode提供的类别,用于声明仅可在此实现文件中使用的私有属性和方法.
你并不总是希望将你的类中的所有方法暴露给外部世界,而是你会在这个私有类中声明它们(我总是在这些私有方法前加上下划线(_),以使它显而易见我调用了一个私有方法,但这完全是可选的).
作为一个例子,这里是一个我不想暴露的私有初始化方法:
@interface MyClass ()
- (BOOL)_init;
@end
@implementation MyClass
- (id)initWithFrame:(CGRect)frame
{
self = [super initWithFrame:frame];
if (self != nil)
{
if (![self _init])
self = nil;
}
return self;
}
- (id)initWithCoder:(NSCoder *)coder
{
self = [super initWithCoder:code];
if (self != nil)
{
if (![self _init])
self = nil;
}
return self;
}
- (BOOL)_init
{
self.something = whatnot;
self.thingA = self.thingB;
return YES;
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1572 次 |
| 最近记录: |