【发布时间】:2015-03-30 23:18:15
【问题描述】:
我想知道以下情况是否可以做到。我继承了一个 iOS 8 的项目。我想在 NSObject 中添加一个方法,以便所有对象都可以看到它。我已经这样做了。这是我创建的类别实现:
#import "NSObject+myCategory.h"
@implementation NSObject (myCategory)
-(void)localizeStringIncludeDefault{
NSLog(@"about to localize String");
}
@end
例如,现在我转到 MyViewController.m 并尝试调用该方法,但它不工作它没有看到:
这是.h:
#import <UIKit/UIKit.h>
@interface MyViewController : UIViewController {
BOOL someFakeBoolean;
IBOutlet UIView *someView;
//etc
}
@property (nonatomic,assign) IBOutlet MyViewController *myViewController;
-(void)localizeStringIncludeDefault;
这是实现 *.m 和我的问题:
@implementation MyViewController
- (void) viewWillAppear:(BOOL)animated
{
[super viewWillAppear:animated];
[self localizeStringIncludeDefault] //this call cant be done, the method is not visible
}
- (void) viewDidDisappear:(BOOL)animated
{
//etc
}
//etc
我的意思是我必须将“NSObject+myCategory.h”导入到 MyViewController 标头中才能使用该类别,但因为我继承了此代码,所以它已经有了一个基础。我不想进入每个 .h 文件并导入它。是一种扩展对象的简单方法,以便每个对象类都能看到我的方法吗?
【问题讨论】:
-
不确定是否需要
@property (nonatomic,assign) IBOutlet MyViewController *myViewController;
标签: ios objective-c nsobject objective-c-category