Я хочу знать, можно ли выполнить следующую ситуацию. Я унаследовал проект 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 и импортировать его. Является ли простой способ расширить объект, чтобы каждый класс объекта увидел мой метод?
Не уверен, что '@property (неатомный, назначить) IBOutlet MyViewController * myViewController;' необходимо –