我编写了一个代码片段,它将文本字段的内容写入文件。不幸的是,我的代码,取决于操作系统,以不同的方式写入文件路径
在约塞米蒂,路径是
file:///var/folders/qg/....../myfile.txt
在山狮中,路径是
file://localhost/var/folders/yx....../myfile.txt
我有一个API,它将文件路径作为/ var / folder / xx /...../ myfile.txt
我想知道是否有办法从/ var / ..创建子字符串直到路径的末尾。
答案 0 :(得分:1)
如果文件路径存储在NSString * yourPathString中,那么
NSString *resultString= [yourPathString substringFromIndex:[yourPathString rangeOfString:@"/var"].location]];
NSLog(@"Final result : %@", resultString);
试试这段代码,希望有所帮助。
答案 1 :(得分:1)
您可以执行以下操作:
// Lets say pathString is an NSString of the path
NSRange varRange = [pathString rangeOfString:@"/var/"];
NSString *correctPath = [pathString substringFromIndex:varRange.location];
在上面的示例中,您使用NSString
的实例方法rangeOfString:
来接收所需子字符串的范围,在本例中为/var/
,并将其存储在一个范围内变量。
然后使用原始NSString
创建一个新的pathString
变量,使用实例变量substringFromIndex
,它返回一个新的子字符串,从您选择的索引开始,并在字符串的末尾结束(您提供我们收到的范围位置,以确定/var/
开始的位置)。
答案 2 :(得分:0)
根据您调用资源的方式,需要保存的方式以及API的查找方式,您需要使用NSURL
方法,而不是字符串。具体来说,您似乎对使用absolutePath
,relativePath
,resourceIdentifier
和pathComponents
我建议您阅读Apple的URL Loading System指南或NSHipster's article,以获得更易读的答案。