adr*_*ian 1 iphone xcode uitableview nsmutablearray
我有一个 NSMutableArray * nameCatalog包含names和urls(name, url).
如果我显示nameCatalog的viewDidLoad是这样的:
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包含了这些链接.请告诉我如何解决这个问题?
您的第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)