Ray Wenderlich 所著的“ iOS6 by Tutorials”一书中有一章非常精彩地讲述了如何编写更“现代”的 Objective-C 代码。书中有一节描述了如何将 iVars 从类的头部移动到实现文件中。 因为所有的 iVar 都应该是私有的,所以这似乎是正确的做法。
但是到目前为止,我找到了3种方法,每个人的做法都不一样。
1.)将 iVars 放在大括号内的@实现下(书中是这样做的)。
2. 将 iVars 置于@实现之下,不要使用大括号
3. 将 iVars 放在@实现(类扩展)之上的私有接口中
所有这些解决方案似乎都工作得很好,到目前为止,我还没有注意到应用程序的行为有什么不同。 我想没有“正确”的方法可以做到这一点,但我需要编写一些教程,我想只选择一种方法来完成我的代码。
我该走哪条路?
编辑: 我在这里只是谈论 iVar。不是财产。只有对象本身需要的额外变量,而且不应该向外部公开。
代码示例
1)
#import "Person.h"
@implementation Person
{
int age;
NSString *name;
}
- (id)init
{
self = [super init];
if (self)
{
age = 40;
name = @"Holli";
}
return self;
}
@end
2)
#import "Person.h"
@implementation Person
int age;
NSString *name;
- (id)init
{
self = [super init];
if (self)
{
age = 40;
name = @"Holli";
}
return self;
}
@end
3)
#import "Person.h"
@interface Person()
{
int age;
NSString *name;
}
@end
@implementation Person
- (id)init
{
self = [super init];
if (self)
{
age = 40;
name = @"Holli";
}
return self;
}
@end