您好我想知道类在Objective-C困惑类
我有3个文件
A_ViewController
A_ViewController +分类
B_ViewController
这里是示例代码
1-1。 A_ViewController.h
@interface A_ViewController {
// some instance Variables
}
//some public methods
@end
1-2 A_ViewController.m
#import "A_ViewController.h."
@implementation A_ViewController
// implementation public methods and private methods
@end
2-1。 A_ViewController + Category.h
@interface A_ViewControler(Category)
-(void) categoryMethod;
@end
2-2。 A_ViewController + Category.m
#import "A_ViewController.h"
#import "A_ViewController+Category.h"
@implementation A_ViewController(Category)
-(void) categoryMethod {
NSLog(@"it's A_ViewController+Category");
}
@end
3-1。 B_ViewController.h
@interface B_ViewController {
// some instance variables
}
-(void) myMethod;
3-2。 B_ViewController.m
#import "B_ViewController.h"
#import "A_ViewController.h"
@interface A_ViewController() // i think it's A_ViewController extension, not A_ViewController+Category, am i right?
-(void) categoryMethod;
@end
@implementation B_ViewController
-(void) myMethod
{
A_ViewController *obj = [[A_ViewController alloc] init];
[obj categoryMethod];
}
@end
我认为它的崩溃,因为我不是导入A_ViewController + Category.h
,我不B_ViewController.m
实施-(void) categoryMethod
但它工作正常,并没有警告。
[obj categoryMethod]
如何连接?
如果这是完美的语法,我有扩展问题。
,如果我有一个名为A_ViewController +产品组别
另一类这里的A_ViewController + Category.h
@interface A_ViewController(Category2)
-(void) categoryMethod;
@end
和A_ViewController + Category2.m
#import "A_ViewController.h"
#import "A_ViewController+Category2.h"
@implementation A_ViewController(Category2)
-(void) categoryMethod
{
NSLog(@"it's A_ViewController+Category2");
}
@end
,这种情况,如果我写代码如3-2,
然后[obj categoryMethod]
可以得到保证
来自A_ViewController + Category或A_ViewController + Category2,对吧?
我在2天之前就曾想过你,但昨天我看到了类似于我的问题的代码,所以我有一个问题。 – MoonSoo 2012-08-07 01:15:56
我已经更新了我的答案,但我不完全理解这个问题,因为类别是非常简单的,类别选择器不应该是相同的。 – Jessedc 2012-08-07 01:24:18