iOS-在不导入category.h文件的情况下向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

我想知道以下情况是否可以解决。我继承了一个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;

我的意思是,我必须将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