如何使用关键字从NSString中选择子字符串?

时间:2014-12-20 08:15:42

标签: ios objective-c cocoa nsstring

我编写了一个代码片段,它将文本字段的内容写入文件。不幸的是,我的代码,取决于操作系统,以不同的方式写入文件路径

在约塞米蒂,路径是

  file:///var/folders/qg/....../myfile.txt

在山狮中,路径是

  file://localhost/var/folders/yx....../myfile.txt

我有一个API,它将文件路径作为/ var / folder / xx /...../ myfile.txt

我想知道是否有办法从/ var / ..创建子字符串直到路径的末尾。

3 个答案:

答案 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方法,而不是字符串。具体来说,您似乎对使用absolutePathrelativePathresourceIdentifierpathComponents

最感兴趣

我建议您阅读Apple的URL Loading System指南或NSHipster's article,以获得更易读的答案。