1

我有以下代码:

NSURL* saveToURL = [[NSURL alloc] initWithString:[self.recording filePath]];
NSLog([saveToURL absoluteString]);
NSLog(@"?");
NSLog([self.recording filePath]);

输出以下内容

2013-08-07 15:51:32.182 SpyApp[49799:c07] ?
2013-08-07 15:51:32.183 SpyApp[49799:c07] /Users/Mike/Library/Application Support/iPhone Simulator/6.1/Applications/C9EDE058-5C8B-4B75-8638-D5A4265B348F/Documents/Recordings/ujaxvehvjlgwfuw

saveToURL在调试器中,我也可以看到nil,尽管[self.recording filePath]返回/Users/Mike/Library/Application Support/iPhone Simulator/6.1/Applications/C9EDE058-5C8B-4B75-8638-D5A4265B348F/Documents/Recordings/ujaxvehvjlgwfuw

这是为什么?我如何解决它?

4

1 回答 1

3

因为 filePath 是路径,而不是 URL。要创建文件 URL,请使用不同的方法:

NSURL* saveToURL = [[NSURL alloc] initFileURLWithPath:[self.recording filePath]];

附带说明一下,NSLog 的第一个参数应该始终是一个常量字符串,你永远不知道 filePath 什么时候可以有一个%

NSLog(@"%@", [saveToURL absoluteString]);
NSLog(@"?");
NSLog(@"%@", [self.recording filePath]);
于 2013-08-07T19:57:19.970 回答