iphone - viewWillDisappear 中 NSString 的问题

标签 iphone ios nsstring nsuserdefaults viewwillappear

几天来我一直在与这段代码作斗争,我真的很感激你的见解。所以这里是...

fileName 在我的 .h 文件中声明为

    NSString *fileName;

和后来的

    @property (nonatomic, copy) NSString *fileName;

viewWillDisappear 中不可访问。当我调试时,它只是显示为 nil 对象或一些奇怪的值。当我调试时,我的控制台显示此消息:

文件名的打印说明: 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 不是。任何见解,想法,想法,将不胜感激。

最佳答案

在您的初始化方法中将其更改为读取 self.fileName =

您需要使用您的属性方法,以便生成字符串的副本,目前是因为您使用的是变量而不是分配给自动释放字符串的属性。通过使用 self.fileName 字符串将被复制并且不会被自动释放。

关于iphone - viewWillDisappear 中 NSString 的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7952885/

相关文章:

objective-c - 如何在 Objective-C 中合并延迟/延迟的调用?

ios - 如何发送包含 json 字符串和来自文件系统的大文件的多部分数据的 HTTP 请求?

ios - 转换为长 Objective -C 时获取垃圾值

iphone - 手动构建 View 时如何处理 UIViewController 中的 View 初始化顺序?

iphone - 有没有一种方法可以在 Interface Builder 中实际*视觉设计*双视​​图(横向 + 纵向)?

iphone - 缺少 AVFoundation.framework

ios - 如何移动到 pageViewController 中的特定页面?

ios - 从 iOS 中的自定义 UI 元素获取父类名称

ios - 按特定单词将 NSString 拆分为数组

iphone - String Objective C 中的字符出现