【问题标题】:incompatible pointer types sending 'nsnumber *' to parameter of type 'nsstring *'不兼容的指针类型将“nsnumber *”发送到“nsstring *”类型的参数
【发布时间】:2015-02-11 09:24:56
【问题描述】:

我正在尝试让警报框显示一个随机生成的数字,但无论我怎么玩,我还没有让它工作,我仍在网上搜索。这是我所拥有的:

ticketNumber = [NSNumber numberWithInt:arc4random() %100000];

PFObject *people = [PFObject objectWithClassName:@"People"];
people[@"ticket"] = ticketNumber;
people[@"photo"] = chosenImage;
[people saveInBackgroundWithBlock:^(BOOL succeeded, NSError *error) {
    if (succeeded) {
        // The object has been saved.
        UIAlertView *ticketNumberView = [[UIAlertView alloc] initWithTitle:@"Ticket Number"
                                                                   message:ticketNumber
                                                             delegate:nil
                                                    cancelButtonTitle:@"OK, I got it."
                                                    otherButtonTitles: nil];

        [ticketNumberView show];

但是,我收到的错误是“不兼容的指针类型将 'nsnumber *' 发送到类型为 'nsstring *' 的参数”。该应用程序仍然可以在我的 iPhone 上编译和运行,但是当它到达这个代码区域时它会冻结并崩溃。我这里有什么问题?

【问题讨论】:

  • 您将 NSString 值作为 NSNumber... 您必须将字符串值转换为数字。

标签: ios objective-c parse-platform nsstring nsnumber


【解决方案1】:

试试

[ticketNumber stringValue];

stringValue 方法用于将ticketNumber 表示为人类可读的字符串。

希望对你有帮助

【讨论】:

    【解决方案2】:

    您可以使用[ticketNumber stringValue] 将NSNumber 转换为NSString,并使用performSelectorOnMainThread 显示警报视图。

    [alertView performSelectorOnMainThread:@selector(show) withObject:nil waitUntilDone:NO];
    

    【讨论】:

      【解决方案3】:

      在 UIAlertView 类参考 (https://developer.apple.com/library/ios/documentation/UIKit/Reference/UIAlertView_Class/index.html#//apple_ref/occ/instp/UIAlertView/message) 中,“消息”属性定义为 NSString 类型。因此,尝试将作为 NSNumber 类型的对象(继承自 NSValue,而不是 NSString)的“ticketNumber”发送到 UIAlertView 的 message 属性中会使编译器抱怨。要使用此初始化程序,请首先使用其他答案中注明的 [ticketNumber stringValue] 方法调用将 ticketNumber 转换为 NSString。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多