У меня есть простой вопрос, но я знаю, что после многих поисков в книгах и в Интернете я не могу найти решение. У меня есть стандартный проект iPhone, который содержит, помимо прочего, ViewController. Мое приложение отлично работает на данный момент.
Теперь я хочу создать универсальный класс (расширяющий NSObject), который будет иметь несколько основных служебных методов. Давайте назовем этот класс Util.m (вместе со связанным файлом .h).
Я создаю класс Util (и файл .h) в своем проекте, и теперь я хочу получить доступ к методам, содержащимся в этом классе класса, из моего ViewController.
Вот пример простой версии Util.h
#import <Foundation/Foundation.h>
@interface Util : NSObject {
}
- (void)myMethod;
@end
Тогда файл Util.m будет выглядеть примерно так:
#import "Util.h"
@implementation Util
- (void)myMethod {
NSLog(@"myMethod Called");
}
@end
Теперь, когда мой класс Util создан, я хочу вызвать метод "myMethod" из моего ViewController. В файле .h моего ViewController я делаю следующее:
#import "Util.h"
@interface MyViewController : UIViewController {
Util *utils;
}
@property (assign) Util *utils;
@end
Наконец, в ViewController.m я делаю следующее:
#import "Util.h"
@implementation MyViewController
@synthesize utils;
- (void)viewDidLoad {
[super viewDidLoad];
utils.myMethod; //this doesn't work
[utils myMethod]; //this doesn't work either
NSLog(@"utils = %@", utils); //in the console, this prints "utils = (null)"
}
Что я делаю не так? Я хотел бы не только иметь возможность напрямую ссылаться на другие классы / методы в таком простом утилитарном классе, как этот, но я также хотел бы напрямую ссылаться на другие ViewControllers, а также их свойства и методы.
Я в тупике! Пожалуйста, помогите.