2015-03-30 3 views
1

Я хочу знать, можно ли выполнить следующую ситуацию. Я унаследовал проект iOS 8. Я хотел бы добавить метод в NSObject, чтобы все объекты могли его видеть. и я уже сделал это. Вот реализация категории я создал:iOS - добавление метода NSObject без импорта файла .h.

#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 и импортировать его. Является ли простой способ расширить объект, чтобы каждый класс объекта увидел мой метод?

+0

Не уверен, что '@property (неатомный, назначить) IBOutlet MyViewController * myViewController;' необходимо –

ответ

4

Одним из вариантов было бы добавить файл категории .h в файл pch. Затем он будет рассматриваться каждым классом в вашем проекте без необходимости его импорта явно.

+0

совершенным, это именно то, что я искал. Я использовал файл .h в файле заголовка префикса, и теперь все объекты видят мой метод. – j2emanue

1

Объявите свои глобальные переменные или декларации в своем файле pch или скорее сделайте Global.h и просто импортируйте это в свой файл pch (много помогает в повторном использовании). Вы также можете объявлять внешние элементы также в своем Global.h и заполнять в App Delegate

 Смежные вопросы

  • Нет связанных вопросов^_^