Ray Wenderlich撰写的"iOS6 by Tutorials"一书中有一篇关于编写更多"现代"Objective-C代码的非常好的章节.在一个部分中,书籍描述了如何将iVars从类的标题移动到实现文件中.由于所有iVars都应该是私有的,这似乎是正确的做法.
但到目前为止,我找到了3种方法.每个人都采用不同的方式.
1.)将@implementantion下的iVars置于一个花括号内(这就是本书中的方法).
2.)将iVars置于@implementantion下,不带花括号
3.)将iVars放在@implementantion(类扩展)上方的私有接口中
所有这些解决方案似乎都运行良好,到目前为止我没有注意到我的应用程序的行为有任何差异.我想没有"正确"的方法,但我需要编写一些教程,我只想为我的代码选择一种方法.
我该走哪条路?
编辑:我只是在这里谈论iVars.不是属性.只有对象只需要自身的其他变量,不应该暴露给外部.
代码示例
1)
#import "Person.h"
@implementation Person
{
int age;
NSString *name;
}
- (id)init
{
self = [super init];
if (self)
{
age = 40;
name = @"Holli";
}
return self;
}
@end
Run Code Online (Sandbox Code Playgroud)
2)
#import "Person.h"
@implementation Person
int age;
NSString *name;
- (id)init
{
self = [super init];
if (self)
{
age = 40;
name = @"Holli";
}
return self;
}
@end
Run Code Online (Sandbox Code Playgroud)
3)
#import "Person.h"
@interface Person()
{ …Run Code Online (Sandbox Code Playgroud) objective-c ×1