我有我知道什麼是一個簡單的問題,但在書籍和互聯網上的許多搜索後,我似乎無法拿出一個解決方案。我有一個標準的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