我知道的是一个简单的问题,但经过书籍和互联网上的多次搜索后,我似乎无法想出一个解决方案.我有一个标准的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及其属性和方法.
我很难过!请帮忙.
您可能应该查看许多Objective C教程中的一个,但直接回答您的问题是您没有分配和初始化对象的实例.代码应如下所示:
utils = [[Utils alloc] init];
[utils myMethod];
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5285 次 |
| 最近记录: |