【发布时间】:2018-06-02 20:41:35
【问题描述】:
自从开始研究 iOS 应用程序和目标 C 以来,我一直对可以声明和定义变量的不同位置感到非常困惑。一方面,我们有传统的 C 方法,另一方面,我们有新的 ObjectiveC 指令,在此基础上添加了 OO。你们能否帮助我了解我想将这些位置用于我的变量的最佳实践和情况,并可能纠正我目前的理解?
这是一个示例类(.h 和 .m):
#import <Foundation/Foundation.h>
// 1) What do I declare here?
@interface SampleClass : NSObject
{
// 2) ivar declarations
// Pretty much never used?
}
// 3) class-specific method / property declarations
@end
和
#import "SampleClass.h"
// 4) what goes here?
@interface SampleClass()
// 5) private interface, can define private methods and properties here
@end
@implementation SampleClass
{
// 6) define ivars
}
// 7) define methods and synthesize properties from both public and private
// interfaces
@end
- 我对 1 和 4 的理解是,它们是 C 风格的基于文件的声明和定义,对类的概念没有任何理解,因此必须准确地使用它们在 C 中的使用方式。我之前已经看到它们用于实现基于静态变量的单例。我还缺少其他方便的用途吗?
- 我对使用 iOS 的看法是,在 @synthesize 指令之外几乎完全淘汰了 ivars,因此几乎可以忽略不计。是这样吗?
- 关于 5:我为什么要在私有接口中声明方法?我的私有类方法似乎编译得很好,没有在接口中声明。主要是为了可读性吗?
非常感谢,伙计们!
【问题讨论】:
标签: iphone objective-c ios ios5