我有我知道什么是一个简单的问题,但在书籍和互联网上的许多搜索后,我似乎无法拿出一个解决方案。我有一个标准的iPhone项目,其中包含一个ViewController。我的应用程序在这一点上工作得很好。的Objective-C:如何访问其他类中的方法
我现在想创建一个通用类(延长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类被创建,我想从我的ViewController中调用“myMethod”方法。在我的视图控制器的.h文件中,我做到以下几点:
#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)"
}
我在做什么错?我希望不仅能够像这样在一个简单的util类中直接引用其他类/方法,而且还希望直接引用其他ViewControllers及其属性和方法。
我很难过!请帮忙。
谢谢。我知道这是一个简单的问题,但出于某种原因,我认为@synthesize也会为我执行init。显然它没有。这解决了我的问题。再次感谢。 – Adam 2010-03-22 14:04:41