NSString StringWithFormat返回nil?

时间:2016-02-05 22:41:18

标签: ios objective-c

我创建了一个包含用户已保存链接的表格视图。用户可以单击任何带有链接的单元格并转到直接网页(具有Web视图的视图控制器)。但是,链接在prepareForSegue方法中返回null,并且Web视图显示为空。 stringWithFormat可能需要重写。当用户单击表视图中的链接时,将分配此代码块。

TableView.m

-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
    if ([[segue identifier] isEqualToString:@"showArticle"]) {
        NSIndexPath *indexPath = [self.tableView indexPathForSelectedRow];

        NSString *urlString = [NSString stringWithFormat:@"http://%@", _toDoItems[indexPath.row]];
        [[segue destinationViewController] setUrl:urlString]; 

3 个答案:

答案 0 :(得分:0)

你确定你的物品数组有物品吗?你应该放置一个断点并在索引路径上打印出你的todoitem的值。如果它不为null,它将使用您正在编码的格式创建字符串。

答案 1 :(得分:0)

确保_toDoItems [indexPath.row]为您返回有效字符串。这里有太多未知数。为了获得更好的帮助,请更好地深入研究这个问题。

答案 2 :(得分:0)

是的,请检查其他用户从阵列中了解您的对象的内容。但是,如果您从tableView的didSelectRowFromIndexPath执行segue,则可以这样做:

- (void) tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath{
    id object = array[indexPath.row];
    [self performSegueWithIdentifier:@"YourIdentifier" sender:object];
}

然后从发件人那里获取您的数据,这样您就不必从tableView中获取数据。