Objective-C:如何访问其他类中的方法

Ada*_*dam 2 objective-c

我知道的是一个简单的问题,但经过书籍和互联网上的多次搜索后,我似乎无法想出一个解决方案.我有一个标准的iPhone项目,其中包含一个ViewController.我的应用程序在这一点上运行得很好.

我现在想要创建一个具有一些基本实用方法的泛型类(扩展NSObject).我们将这个类称为Util.m(以及相关的.h文件).

我在我的项目中创建了Util类(和.h文件),现在我想从ViewController访问该类类中包含的方法.

这是Util.h的简单版本的示例

#import <Foundation/Foundation.h>

@interface Util : NSObject {

}

- (void)myMethod;

@end
Run Code Online (Sandbox Code Playgroud)

然后Util.m文件看起来像这样:

#import "Util.h"

@implementation Util

- (void)myMethod {
    NSLog(@"myMethod Called");
}

@end
Run Code Online (Sandbox Code Playgroud)

现在我的Util类已经创建了,我想从我的ViewController调用"myMethod"方法.在我的ViewController的.h文件中,我执行以下操作:

#import "Util.h"

@interface MyViewController : UIViewController {

    Util *utils;

}

@property (assign) Util *utils;

@end
Run Code Online (Sandbox Code Playgroud)

最后,在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)"
}
Run Code Online (Sandbox Code Playgroud)

我究竟做错了什么?我想不仅能够直接引用像这样的简单util类中的其他类/方法,而且我还想直接引用其他ViewControllers及其属性和方法.

我很难过!请帮忙.

Ste*_*ton 5

您可能应该查看许多Objective C教程中的一个,但直接回答您的问题是您没有分配和初始化对象的实例.代码应如下所示:

utils = [[Utils alloc] init];
[utils myMethod];
Run Code Online (Sandbox Code Playgroud)