NSString里面的问题将会消失
我现在正在和这段代码作斗争,我真的很感激你的洞察力。 所以这里是…
在我的.h
文件中声明的fileName
NSString *fileName;
后来又如
@property (nonatomic, copy) NSString *fileName;
viewWillDisappear
不可访问。 它只是显示为零对象,或一些奇怪的价值,当我debugging。 当我debugging时,我的控制台显示这个味精:
打印fileName的说明: FileNumber1
当我到达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
不是。 任何见解,想法,想法,将不胜感激。
在你的init方法中改变它来读取self.fileName =
您需要使用您的属性方法,以便制作string的副本,因为您使用的是variables而不是您正在分配自动释放string的属性。 通过使用self.fileNamestring将被复制,不会被自动释放。