0

私は Dimitris のURL パーサー クラスを使用していますが、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

4

1 に答える 1

1

NSURL を initWithURLString に渡しますが、次のように NSString と共に使用する必要があります。

NSString* urlString = [NSString stringWithFormat:@"%@",[info valueForKey:UIImagePickerControllerReferenceURL]];
URLParser *parser = [[[URLParser alloc] initWithURLString:urlString] autorelease];
于 2012-12-04T08:31:46.153 に答える