自从开始在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一起工作的收获是,ivars已在@synthesize指令之外完全被淘汰,因此可以忽略不计。是这样吗
- 关于5:为什么我要在私有接口中声明方法?我的私有类方法似乎可以在接口中没有声明的情况下进行编译。主要是为了提高可读性吗?
谢谢大家!