简而言之,如何实现?
我有一个视图控制器,它创建了一些自定义对象。其中一个对象需要调用控制器中的一个方法。该对象似乎想要调用控制器中的类方法,这可能没问题,但是控制器中的类需要调用控制器中的实例方法,而它似乎不想这样做。明白我的意思吗?
如果不明白,这里是伪代码:
ViewController.m
#import "customObj.h"
-(void)viewDidLoad{
foobar=@"string";//declared in ViewController.h
}
-(void)createObj{
foobar=@"different string";
customObj *customObjInstance=[[customObj alloc] init];
}
---
customObj.m
#import "ViewController.h"
-(void)callBack{
[ViewController createObj];
}
好的,当callBack运行时,它会出现错误,说它正在寻找+createObj(而不是-createObj)。我可以将createObj更改为类方法,但是它会因为foobar在-viewDidLoad中初始化而出现问题,我无法将其更改为+viewDidLoad。也许我可以将foobar移出到一个类方法中,但是如何调用它呢?我不能使用self,我需要使用[ViewController ...]吗?我认为这样不起作用。
我的猜测是我缺少一些基本概念,这并不像我想象的那么困难。我会感激任何能帮我理清思路的人。
非常感谢。