我知道一个文件可以定义许多不同的类。反过来呢?可以在几个不同的文件中定义一个类吗?
假设您要添加您编写的类的方法或属性(而不是框架类)。你能这样做吗?
注意我不想更改原始.m文件,我想添加类别无法做的属性。
答案 0 :(得分:2)
一个类只能有一个@implementation块,所以不能在多个文件中定义一个类。
如果出于某种原因无法将代码添加到原始类@implementation中,则替代方案是子类或类别。
答案 1 :(得分:0)
不直接。
可替换地:
很好 - 在其他文件中创建类别
不太好 - #include主要实现文件中的其他文件。
答案 2 :(得分:0)
是的,你可以用类别来做到这一点。
//File1.h
@interface Object : NSObject
-(void)method;
@end
//File1.m
@implementation Object
-(void)method
{
NSLog (@"hello");
}
@end
//File2.h
@interfacae Object(ObjectExtention) //How you declare a category
-(void)methodTwo;
@end
//File2.m
@implementation Object(ObjectExtention)
-(void)methodTwo
{
NSLog (@"Categorie Method");
}
@end
//File3.m
#import "File1.h"
#import "File2.h"
int main()
{
Object obj = [[Object alloc] init];
[obj method]; //Declared in first file
[obj methodTwo]; //Declared in second file where we had our categorie defined
return 0;
}
您可以使用方法执行此操作,但是,您无法向类别之类的对象添加更多实例变量。