【发布时间】:2012-01-09 23:39:07
【问题描述】:
我在控制器的接口中声明了两个 NSString 和 NSURL 变量
// project file url
NSURL * url_projectURL;
// temp string just for examine
NSString * tempString;
在我名为的应用操作中:
- (IBAction) btnNewProject:(id)sender
// after running save panel and clicked Save
//
// set project url
url_projectURL = [savePanel URL];
// set temp string
tempString = [url_projectURL absoluteString];
//
NSLog(@"tempString is: %@", tempString);
NSLog(@"ProjectURL is: %@", [url_projectURL absoluteString]);
结果是:
tempString is: file://localhost/Users/kosartofiq/Documents/project.ksf
ProjectURL is: file://localhost/Users/kosartofiq/Documents/project.ksf
但在其他行动中,例如: - (IBAction) btn_test:(NSButton *)sender
NSLog(@"tempString is: %@", tempString);
NSLog(@"ProjectURL is: %@", [url_projectURL absoluteString]);
结果: 对于字符串变量是:
tempString is: file://localhost/Users/kosartofiq/Documents/project.ksf
但是对于 url 变量是 nil 或者在 coe 的运行中显示错误
我的问题是为什么 url 变量将其值更改为 nil 并且在其他操作中使用它时丢失了它的值,但字符串变量保持它的值? 我想使用这个 url 来保存对文件的更改,在我的项目中我会使用它一段时间。
【问题讨论】:
-
什么是变量saveProject:它是什么类,如何以及在哪里声明和赋值?
-
saveProject 是 NSSavePanel。抱歉,我没有提到我将更改为 savePanel。谢谢
-
请展示
btn_test:的完整实现。 -
btn_test 的实现,如果只是为了打印 nslog 不更多,或者在某些文本接收器 (nstextfield) 中打印值,我只是为了测试而创建的,我在 btn_test 之外的某些过程中使用这些变量值
标签: objective-c cocoa nsurl null