我正在寻找循环我的NSArray*urls - 对每个对象进行一些字符串调整.
但是,一旦它进入For循环并尝试调整NSString*的东西 - 这会引发异常.
关于为什么我难倒的任何想法?
- (void)GetData { NSFileManager *fm = [NSFileManager defaultManager]; NSString *directory = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0]; directory = [NSString stringWithFormat:@"%@/%@/%@/%@", directory, self.researcherID, self.participantID, testTypeString]; directory = [directory stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]; NSError *error; NSURL *url = [NSURL URLWithString:directory]; NSArray *urls = [fm contentsOfDirectoryAtURL:url includingPropertiesForKeys:nil options:0 error:&error]; for (int x = 0; x < urls.count; x++) { NSString *urlIndex = urls[x]; NSString *thing = [urlIndex stringByReplacingOccurrencesOfString:@"%20" withString:@" "]; thing = [thing stringByReplacingOccurrencesOfString:@"file://" withString:@""]; // add thing to new array but crashes before i can } }
编辑:异常抛出
*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[NSURL stringByReplacingOccurrencesOfString:withString:]: unrecognized selector sent to instance 0x14ebf1a0'
Martin R.. 5
NSArray *urls = [fm contentsOfDirectoryAtURL:url includingPropertiesForKeys:nil options:0 error:&error];
返回一个NSURL
对象数组,而不是NSString
s.您可以使用简单地将URL转换为字符串
NSString *path = [urls[x] path];
使字符串操作过时.或者,使用
NSArray *files = [fm contentsOfDirectoryAtPath:directory error:&error];
它返回一个NSString
对象数组而不是NSURL
s.
NSArray *urls = [fm contentsOfDirectoryAtURL:url includingPropertiesForKeys:nil options:0 error:&error];
返回一个NSURL
对象数组,而不是NSString
s.您可以使用简单地将URL转换为字符串
NSString *path = [urls[x] path];
使字符串操作过时.或者,使用
NSArray *files = [fm contentsOfDirectoryAtPath:directory error:&error];
它返回一个NSString
对象数组而不是NSURL
s.