iOS-在不导入category.h文件的情况下向NSObject添加方法
我想知道以下情况是否可以解决。我继承了一个iOS 8的项目。我想向NSObject添加一个方法,以便所有对象都能看到它。我已经做到了。以下是我创建的类别实现:iOS-在不导入category.h文件的情况下向NSObject添加方法,ios,objective-c,nsobject,objective-c-category,Ios,Objective C,Nsobject,Objective C Category,我想知道以下情况是否可以解决。我继承了一个iOS 8的项目。我想向NSObject添加一个方法,以便所有对象都能看到它。我已经做到了。以下是我创建的类别实现: #import "NSObject+myCategory.h" @implementation NSObject (myCategory) -(void)localizeStringIncludeDefault{ NSLog(@"about to localize String"); } @end 例如,现在我转到My
#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;
我的意思是,我必须将NSObject+myCategory.h导入MyViewController头才能使用该类别,这对我来说很有意义,但因为我继承了这段代码,它已经有了基础。我不想进入每个.h文件并导入此文件。是扩展对象的一种简单方法,以便每个对象类都能看到我的方法吗?一个选项是将category.h文件添加到pch文件中。然后,项目中的每个类都可以看到它,而无需显式导入它 一个选项是将category.h文件添加到pch文件中。然后,项目中的每个类都可以看到它,而无需显式导入它 在您的pch文件中声明您的全局变量或声明,或者创建一个global.h,并将其导入到您的pch文件中,这对重用性有很大帮助。您也可以在Global.h中声明extern项,并填充应用程序内委托在pch文件中声明全局变量或声明,或者创建一个Global.h,只需将其导入pch文件中,即可大大提高可重用性。您也可以在Global.h中声明外部项并填充应用内委托不确定@property是否为非原子,请分配IBOutlet MyViewController*MyViewController;必要时不确定@property是否非原子,分配IBOutlet MyViewController*MyViewController;这正是我想要的。我已经在前缀头文件中使用了category.h文件,现在所有对象都看到了我的方法。完美这正是我想要的。我在前缀头文件中使用了category.h文件,现在所有对象都可以看到我的方法。
@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