【发布时间】:2011-10-31 11:09:44
【问题描述】:
我与这段代码斗争了好几天,我真的很感激你的洞察力。所以这里...
fileName 在我的.h 文件中声明为
NSString *fileName;
后来变成了
@property (nonatomic, copy) NSString *fileName;
在viewWillDisappear 内无法访问。它只是显示为 nil 对象,或者在我调试时显示为一些奇怪的值。当我调试时,我的控制台会显示这个消息:
文件名的打印说明: 文件编号1
当我到达viewWillDisappear 时,我的控制台会显示:
文件名的打印说明:
是的,fileName 什么都没有。值只是消失了。我只是不知道为什么!!!
更多详情:
在我的 init 方法中,我执行以下操作,它工作正常。
fileName = [[NSString alloc] initWithString:(NSString *)CFURLGetString(pdfURL)];
fileName = [[fileName lastPathComponent] stringByDeletingPathExtension];
fileName = [fileName stringByReplacingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
在整个程序中,我可以访问fileName 就好了,但在viewWillDisappear 内部,我试图通过尝试以下操作来保存到我的standardUserDefaults:
NSUserDefaults *ud = [[NSUserDefaults standardUserDefaults] autorelease];
NSArray *tmp = [NSArray arrayWithArray:someMutableArray];
[ud setObject:tmp forKey:fileName]; // THE PROBLEM IS HERE WITH fileName AS AKEY
[ud synchronize];
[tmp release];
此时someMutableArray 可以访问,但fileName 不可用。任何见解,想法,想法,将不胜感激。
【问题讨论】:
标签: iphone ios nsstring nsuserdefaults viewwillappear