【问题标题】:Implicit Conversion of 'nsinteger' (aka 'long') to 'nsstring *' is Disallowed with ArcArc 不允许将“nsinteger”(又名“long”)隐式转换为“nsstring *”
【发布时间】:2016-08-11 13:39:56
【问题描述】:
-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender   {

if ([segue.identifier isEqualToString:@"mnuSelected"])
{
    ViewController *v = segue.destinationViewController;

    if(self.searchDisplayController.active) {
    NSIndexPath *indexPath = nil;
    indexPath = [self.searchDisplayController.searchResultsTableView indexPathForSelectedRow];
    v.str = [self.result objectAtIndex:indexPath.row];
        NSIndexPath *rowSelected = nil;
        rowSelected = [self.searchDisplayController.searchResultsTableView indexPathForSelectedRow];
        v.UserSelected = rowSelected.row; //error in this line 

}
    else {
    NSIndexPath *indexPath = nil;
    indexPath = [self.tableView indexPathForSelectedRow];
    v.str = [self.monthName objectAtIndex:indexPath.row];
        NSIndexPath *rowSelected = nil;
        rowSelected = [self.tableView indexPathForSelectedRow];
        v.UserSelected = rowSelected.row;

 }
    return; }
 }

我在这一行有错误:v.UserSelected = rowSelected.row; 错误是:'nsinteger'(又名'long')到'nsstring *'的隐式转换是不允许使用弧

【问题讨论】:

  • 尝试 v.UserSelected = [nsstring stringwithformat:@"%d", rowSelected.row];
  • 如何在ViewController 中声明UserSelected?应该是NSString。为什么是 NSString ?为什么不是NSInteger
  • UserSelected 是一个?整数,长,字符串??请在您的问题中说明
  • UserSelected 是一个字符串
  • 我希望发送数据显示在下一页 pass v.UserSelected 中。示例 UIImage *imgTwitter = [UIImage imageNamed:@"twitter"]; UserSelected isEqual:@"这是 Twitter"]) img.image = imgTwitter;

标签: objective-c xcode nsstring string-comparison


【解决方案1】:

尝试使用以下代码:

v.UserSelected = [NSString stringWithFormat:@"%ld",(long) rowSelected.row];

注意:如果您尝试将值设置为:

v.UserSelected = [NSString stringWithFormat:@"%d",rowSelected.row];

你会得到编译器警告:

NSInteger 类型的值不应用作格式参数;改为将显式强制转换为“long”

如果您在 OS X(64 位)上编译,您会收到此警告,因为在该平台上 NSInteger 被定义为 long 并且是 64 位整数。另一方面,%d 格式用于 int,它是 32 位的。所以格式和实际参数大小不匹配。

由于 NSInteger 是 32 位还是 64 位,根据平台的不同,编译器一般建议对 long 添加强制转换。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-04-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-05-23
    相关资源
    最近更新 更多