无法识别的选择器错误

时间:2012-05-15 20:01:54

标签: ios

我收到此错误:[NSURL stringByAppendingFormat:]:无法识别的选择器在到达追加时发送到实例0x5869210。 strcust是一个普通数字,strURI在追加之前是正确的。

 NSString *strUIR = [NSURL URLWithString:@"https://cid.hooru.mobi:36610/?";
 strURI = [strURI stringByAppendingFormat:@&Cust=IPRR%@", strCust];

任何想法都将不胜感激。我只是想从变量中追加名称/值对。无法获得附加工作。

3 个答案:

答案 0 :(得分:2)

这段代码有几个问题:

  1. 您宣布NSString但是您正在分配NSURL
  2. 你错过了一个右方括号']'
  3. 你错过了第二行的双引号
  4. 您尝试在NSString对象
  5. 上调用NSURL方法
  6. 你在第一行拼错了strURIstrUIR
  7. 试试这个:

    NSString *strURI = @"https://cid.hooru.mobi:36610/?";
    strURI = [strURI stringByAppendingFormat:@"&Cust=IPRR%d", strCust]; 
    //Note the %d (if strCust is an int. If it's an NSString use %@)
    
    NSURL *myUrl = [NSURL UrlWithString:strURI];
    

答案 1 :(得分:0)

[NSURL URLWithString:]返回NSURL类型的指针。仅收集NSString *类型中的NSURL *类型的返回值不会将其转换为NSString *类型。因此strUIR是NSURL *类型,即使声明为NSString strUIR,因此您不能将任何消息传递给应该传递给NSString 类型的strUIR。

答案 2 :(得分:0)

NSURL不响应stringByAppendingFormat:

您将strURI指定为NSString,因此编译器不会发出警告,但您将其设置为NSURL。

在创建NSURL之前初始化完整字符串,或者使用URLByAppendingPathComponent:,我建议使用第一个选项。

    NSString *path = @"https://cid.hooru.mobi:36610/?"

...

    path = [path stringByAppendingFormat:@"&Cust=IPRR%@", strCust];
    NSURL *url = [NSURL URLWithString:path]

有关详细信息,请参阅文档:https://developer.apple.com/library/mac/#documentation/Cocoa/Reference/Foundation/Classes/NSURL_Class/Reference/Reference.html