2012-12-04 24 views
0

無法識別的選擇我用的是URL parser class從季米特里斯但我遇到一個問題,當初始化對象trought initWithURLStringNSScanner上scanUpToString

- (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 length]: unrecognized selector sent to instance 0x1f8c2050

怎麼回事可能?

編輯:也許你想知道我怎麼稱呼URLParser:

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

UIImagePickerControllerReferenceURL值爲:資產庫://asset/asset.PNG ID = 8D2F0449-11A3-4962-9D60-C446831645D7 & EXT = PNG

回答

1

你傳遞一個NSURL到initWithURLString,但你應該的NSString像這樣使用它:

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

謝謝!我使用absoluteString將我的NSURL強制轉換爲NSString。 – ApheX