NSString连接NSInteger Frozen

时间:2014-04-17 18:48:12

标签: ios objective-c nslog

我的IOS应用程序需要在字符串后面添加一个数字。 该数字由正在推送的单元格的索引接收。 但是如果我运行应用程序并推送一个单元格。 我的屏幕转到xCode,显示有一个名为tempstring的变量。然而,模拟器不再响应.. 我怎样才能解决这个问题? 这是我使用的代码:

    -(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
    NSString *tempstring = [NSString stringWithFormat: @"http://www.app-creater.com/service.php?k=%i",indexPath.row];
    NSLog(tempstring);
}
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    // Retrieve cell
    NSString *cellIdentifier = @"BasicCell";
    UITableViewCell *myCell = [tableView dequeueReusableCellWithIdentifier:cellIdentifier];

    // Get the location to be shown
    Location *item = _feedItems[indexPath.row];

    // Get references to labels of cell
    myCell.textLabel.text = item.Name;

    return myCell;
}

我在NSlog(tempstring)得到一个线程1:断点1.1 说不完整的格式说明符。

我该如何解决这个问题?

- 编辑 -

我想要实现的是获取字符串: “www.app-create.com/service.php?k=1”(或任何数字) 使用该字符串我想下载一个部分JSON片段,所以在示例中密码片段,对应于字符串号码。 所以例如该链接用于电子邮件地址:tet@icloud.com,我得到密码1234,链接www.app-create.com/service.php?k=0,我得到密码4321

3 个答案:

答案 0 :(得分:1)

如果没有格式说明符,您就无法使用NSLog

更改:

NSLog(tempstring);

NSLog(@"%@",tempstring);

根据this Apple文档,由于signal 10 (SIGBUS)

,您的代码可能会崩溃

答案 1 :(得分:1)

NSLog的定义是研究员:

FOUNDATION_EXPORT void NSLog(NSString *format, ...) NS_FORMAT_FUNCTION(1,2);

所以你不能写出如下声明:

NSLog(tempstring);  

您总是需要使用格式字符串并传入您想要的参数 - 成为NSString的一部分,如下所示:

NSLog(@"The value of tempstring is: %@", tempstring); 

答案 2 :(得分:-1)

不确定'%i'是有效的格式说明符。您可能必须使用'%d'或此处指定的其中一个

https://developer.apple.com/library/ios/documentation/Cocoa/Conceptual/Strings/Articles/formatSpecifiers.html#//apple_ref/doc/uid/TP40004265-SW1