通过NSSrray的URLS循环 - 崩溃 - iOS

Rya*_*yan 0 url for-loop objective-c nsarray ios

我正在寻找循环我的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
        }
    }
Run Code Online (Sandbox Code Playgroud)

编辑:异常抛出

*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[NSURL stringByReplacingOccurrencesOfString:withString:]: unrecognized selector sent to instance 0x14ebf1a0'
Run Code Online (Sandbox Code Playgroud)

Mar*_*n R 5

NSArray *urls = [fm contentsOfDirectoryAtURL:url includingPropertiesForKeys:nil options:0 error:&error];
Run Code Online (Sandbox Code Playgroud)

返回一个NSURL对象数组,而不是NSStrings.您可以使用简单地将URL转换为字符串

NSString *path = [urls[x] path];
Run Code Online (Sandbox Code Playgroud)

使字符串操作过时.或者,使用

NSArray *files = [fm contentsOfDirectoryAtPath:directory error:&error];
Run Code Online (Sandbox Code Playgroud)

它返回一个NSString对象数组而不是NSURLs.