我一直有一个objective-c类似乎失去了它在同一类的方法之间的指针引用。Objective-C:成员变量正在失去方法调用之间的引用
在MyTableViewController.h文件,我声明:
@interface SettingsTableViewController : UITableViewController <UITextFieldDelegate>{
OCRAppDelegate *delegate;
}
MyTableViewController.m文件
- (id) init {
self = [ super initWithStyle: UITableViewStyleGrouped ];
delegate = [(OCRAppDelegate *)[[UIApplication sharedApplication] delegate] retain];
}
的问题是当 “MyTableViewController” 视图中再次出现,并且内执行的不同方法同一个类,委托指针(在init方法中分配的)不再存在。我试图保留,但无济于事。
有人会知道这是为什么,它似乎也许是一个基本的Objective-C问题,我失踪了。
感谢您的帮助。
感谢, 温斯顿
Hello invariant, 该值更改为0x0。 然而,当我添加 “代表= [......]” 行到viewWillAppear中方法 - (无效)viewWillAppear中:(BOOL)动画{ \t [超级viewWillAppear中:动画]; \t委托=(OCRAppDelegate *)[[UIApplication sharedApplication]委托]; } 它的工作原理。非常感谢您的快速响应! Winston – Winston 2010-04-03 08:03:05
嗨,好的,我根据这个编辑了答案。 – 2010-04-03 08:11:18
我可以确认,当我使用XCode进行调试并转到 - (id)init函数时,代理指针设置正确。但是,在重新输入.m类中的另一个函数时,它会丢失。它几乎就像UIViews被更改时一样,任何指针引用都会丢失。 在我的应用程序委托中,我所做的唯一的事情是: \t NSString * path = [[NSBundle mainBundle] pathForResource:@“Settings”ofType:@“plist”]; \t NSMutableDictionary * dict = [[NSMutableDictionary alloc] initWithContentsOfFile:path]; \t self.settings = dict; \t [字典发布]; \t OCRsettings = [设置objectForKey:@“OCR”]; – Winston 2010-04-03 09:12:34