在UITableView中使用NSMUtableArray时出现问题

adr*_*ian 1 iphone xcode uitableview nsmutablearray

我有一个 NSMutableArray * nameCatalog包含namesurls(name, url).

如果我显示nameCatalogviewDidLoad是这样的:

for (Catalogue *o in nameCatalog){
        NSLog(@"Catalog: %@", o.url);
    }
Run Code Online (Sandbox Code Playgroud)

我得到以下链接,这很好:

接下来我NSMutableArray * nameCatalog想把as内容放到一个表中.我实现了以下内容:

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {

    NSURL *url=[NSURL URLWithString:[[nameCatalog objectAtIndex:indexPath.row] valueForKey:@"url"]];
     NSLog(@"the clicked url:%@", url);

}
Run Code Online (Sandbox Code Playgroud)

因此,当我单击表格的第一行时,它将显示第一个URL ...第二行,依此类推.

当我点击first row它时会显示这个

哪个是对的.

当我点击second row它时显示:

这也是正确的.

当我点击third row它时显示:

 (null)
Run Code Online (Sandbox Code Playgroud)

这是错的!

我哪里错了?

与第三个链接包含的事实有什么关系french e

在这个词中coupé.

重要:

以上是为了简化,为了让每个人都清楚,我认为我NSMutableArray 只包含3个网址.

事实上它包含更多,大约20个网址french e.除了包含的网址外,一切都很顺利.当我点击表格的那些行NSLog显示时null.

而且我确信我的链接NSMutableArray包含了这些链接.请告诉我如何解决这个问题?

Vla*_*mir 5

您的第3个字符串包含可能在url中无效的"é"字符 - 尝试使用NSString中的-stringByAddingPercentEscapesUsingEncoding:function为该字符添加百分比转义:

NSString *escapedString = [[[nameCatalog objectAtIndex:indexPath.row] valueForKey:@"url"] stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
NSURL *url=[NSURL URLWithString:escapedString];
Run Code Online (Sandbox Code Playgroud)