iOS - 向 NSObject 添加方法而不导入类别 .h 文件

标签 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

现在我转到 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 header 才能使用该类别,但因为我继承了此代码,所以它已经有了一个基础。我不想进入每个 .h 文件并导入它。扩展对象以便每个对象类都可以看到我的方法是一种简单的方法吗?

最佳答案

一种选择是将类别 .h 文件添加到 pch 文件中。然后项目中的每个类都可以看到它,而无需显式导入它。

关于iOS - 向 NSObject 添加方法而不导入类别 .h 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29357993/

相关文章:

ios - 从通知中心启动应用程序时发生奇怪的崩溃

objective-c - 在 Cocoa 中将自定义对象写入 .plist

ios - 将 NSObject 的所有属性编码为 NSData

ios - 当对象不是 nil ios 时执行选择器

ios - SFSafariViewController presentViewController 动画

ios - 添加渐变的 UIButton 被切断

objective-c - NSArray 的实际类是什么?

objective-c - 在 iPhone 屏幕上绘制罗盘方位

ios - Swift 选项卡栏已隐藏但自定义按钮仍处于事件状态

ios - 每次重新加载表格时图像闪烁(iOS,objective-C)