Bal*_*ram 2 iphone objective-c
我只是不明白为什么有些人在.m文件中声明方法.这些声明不能只是进入.h文件吗?这是我看到的主要内容:
//myClass.h
#import <UIKit/UIKit.h>
@interface myClass: UIViewController
{
}
@end
Run Code Online (Sandbox Code Playgroud)
和实现(.m)部分:
//myClass.m
#import "myClass.h"
@interface myClass
//declare some methods here
@end
@implementation myClass
//the actual implementation
@end
Run Code Online (Sandbox Code Playgroud)
当方法以这种方式声明时有什么区别吗?另外,"@private"方法可以在myClass.h中声明,不是吗?
它是关于保持公共和私人接口之间的分离.
能够在实现文件中声明方法,属性和iVars是一个明确的指示,指示您可以在类中执行和使用的内容以及可以从类外部执行的操作.
您还可以重新声明属性.例如:
在.h
@property (readonly, copy) NSString *aString;
Run Code Online (Sandbox Code Playgroud)
在.m
@property (readwrite, copy) NSString *aString;
Run Code Online (Sandbox Code Playgroud)
因此,在您的类中,您可以将属性视为readwrite,但在外部,该属性是readonly.