Xcode 获取错误“;格式不是字符串文字,也没有格式参数;

Xcode 获取错误“;格式不是字符串文字,也没有格式参数;,xcode,nsstring,string-formatting,Xcode,Nsstring,String Formatting,我看着这里,没有看到我同样的情况。任何愿意帮忙的人,谢谢 我有一个分组表,显示我的足球队在即将到来的赛季中的比赛。主客场比赛 NSString *message = [[NSString alloc] initWithFormat:rowValue]; Error Message: Format not a string literal and no format arguments 甚至都不知道这是怎么来的 我使用了我在网上找到的教程。复制并粘贴了整个内容。我只更改了我个人表所需的

我看着这里,没有看到我同样的情况。任何愿意帮忙的人,谢谢

我有一个分组表,显示我的足球队在即将到来的赛季中的比赛。主客场比赛

     NSString *message = [[NSString alloc] initWithFormat:rowValue];
Error Message: Format not a string literal and no format arguments
甚至都不知道这是怎么来的

我使用了我在网上找到的教程。复制并粘贴了整个内容。我只更改了我个人表所需的值。这是我唯一的错误?有什么帮助吗

编辑:如果我需要提供更多的代码或任何东西,请让我知道

谢谢


--安东尼·隆巴迪不太清楚你的意思。我将输入更大的代码块,这可能会有所帮助

- (void)tableView:(UITableView *)tableView
didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
NSArray *listData =[self.tableContents objectForKey:
                    [self.sortedKeys objectAtIndex:[indexPath section]]];
NSUInteger row = [indexPath row];
NSString *rowValue = [listData objectAtIndex:row];

NSString *message = [[NSString alloc] initWithFormat:rowValue];

UIAlertView *alert = [[UIAlertView alloc]
                      initWithTitle:@"You Better Be There Or Be Watching It!"
                      message:message delegate:nil
                      cancelButtonTitle:@"Go Knights!"
                      otherButtonTitles:nil];
[alert show];
[alert release];
[message release];
[tableView deselectRowAtIndexPath:indexPath animated:YES];
}

有点老的问题,而最初的提问者可能早已离去。。。但对于历史和未来的读者来说,这是正在发生的事情

问题是因为您正在使用printf样式的格式字符串创建
消息
-
initWithFormat
希望有一个包含%个字符的格式字符串来指示替换-例如,浮点为%f,整数为%d等

您传递的不是静态格式字符串(字符串文本,直接在代码中定义),而是动态字符串。编译器很混乱,因为您没有传递任何参数。如果您的动态字符串包含%替换,地狱之门就会松动,或者至多您的应用程序会崩溃

由于没有参数的格式字符串没有意义,因此会引发错误

要解决此问题,您可以将
行值
消息
行替换为:

NSString *rowValue = [listData objectAtIndex:row];
NSString *message = rowValue;
或者更简洁地说:

NSString *message = [listData objectAtIndex:row];
或者使用新的objective-c文本语法和订阅:

NSString *message = listData[row];

“rowValue”是什么类型的对象/变量?