相关疑难解决方法(0)

将iVars放在"现代"Objective-C中的哪里?

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

77
推荐指数
2
解决办法
1万
查看次数

标签 统计

objective-c ×1