objective-c - NSScanner 无法识别 scanUpToString 上的选择器

标签 objective-c ios xcode ios6 nsscanner

我使用 URL parser class来自 Dimitris,但我在初始化对象时遇到问题 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;
}

在线[扫描仪 scanUpToString:@"?"intoString:nil]; 我收到错误:

[NSURL length]: unrecognized selector sent to instance 0x1f8c2050

这怎么可能?

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

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

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

最佳答案

您将 NSURL 传递给 initWithURLString,但您应该将其与 NSString 一起使用,如下所示:

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

关于objective-c - NSScanner 无法识别 scanUpToString 上的选择器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13698757/

相关文章:

ios - 如何使多个 UILabel 在 UITableView 单元格中自行调整大小?

ios - 该整数是否等于文本字段中的数字

objective-c - 处理预编译头给我错误,我不明白

objective-c - iOS >> 单独的 .h&.m 文件来管理 UITableView

ios - 具有Core 2 duo的Mac Air是否足以开始为ios开发?

iphone - 没有 cocos2D 的 xcode iphone 粒子

objective-c - 如何收听屏幕截图

ios - UITextField 的输入 View 未更改

xcode - 随机数在 swift 语言中生成问题 - EXC_BAD_INSTRUCTION

swift - 如何确定 Swift 中滑动的速度和角度