【问题标题】:NSScanner unrecognized selector on scanUpToStringscanUpToString 上的 NSScanner 无法识别选择器
【发布时间】:2012-12-04 08:28:59
【问题描述】:

我使用来自 Dimitris 的 URL parser class,但是当 init 对象出现 initWithURLString 时遇到问题:

- (id) initWithURLString:(NSString *)url{
    self = [super init];
    if (self != nil) {
        NSString *string = url;
        NSScanner *scanner = [NSScanner scannerWithString:string];
        [scanner setCharactersToBeSkipped:[NSCharacterSet characterSetWithCharactersInString:@"&?"]];
        NSString *tempString;
        NSMutableArray *vars = [NSMutableArray new];
        //ignore the beginning of the string and skip to the vars
        [scanner scanUpToString:@"?" intoString:nil];
        while ([scanner scanUpToString:@"&" intoString:&tempString]) {
            [vars addObject:[tempString copy]];
        }
        self.variables = vars;
    }
    return self;
}

在线[scanner scanUpToString:@"?" intoString:nil]; 报错:

[NSURL 长度]:无法识别的选择器发送到实例 0x1f8c2050

这怎么可能?

编辑:也许你想知道我如何调用 URLParser:

URLParser *urlParser = [[URLParser alloc]initWithURLString:[info valueForKey:UIImagePickerControllerReferenceURL]];

UIImagePickerControllerReferenceURL 值为:assets-library://asset/asset.PNG?id=8D2F0449-11A3-4962-9D60-C446831645D7&ext=PNG

【问题讨论】:

    标签: objective-c ios xcode ios6 nsscanner


    【解决方案1】:

    您将 NSURL 传递给 initWithURLString,但您应该像这样将它与 NSString 一起使用:

    NSString* urlString = [NSString stringWithFormat:@"%@",[info valueForKey:UIImagePickerControllerReferenceURL]];
    URLParser *parser = [[[URLParser alloc] initWithURLString:urlString] autorelease];
    

    【讨论】:

    • 谢谢!我使用 absoluteString 将我的 NSURL 转换为 NSString。
    猜你喜欢
    • 2014-08-23
    • 1970-01-01
    • 2012-02-07
    • 2018-01-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多