不兼容的指针类型将 'nsnumber *' 发送到 'nsstring *' 类型的参数
incompatible pointer types sending 'nsnumber *' to parameter of type 'nsstring *'
我试图让一个警告框显示一个随机生成的数字,但无论我怎么玩,我都没有让它工作,我仍在网上搜索。这是我拥有的:
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];
但是,我收到的错误是 "incompatible pointer types sending 'nsnumber *' to parameter of type 'nsstring *'"。该应用程序仍然可以在我的 iPhone 上编译和运行,但是当它运行到此代码区域时,它会冻结并崩溃。我这里有什么问题吗?
尝试
[ticketNumber stringValue];
方法stringValue
用于将ticketNumber
表示为人类可读的字符串。
希望对您有所帮助
您可以使用 [ticketNumber stringValue]
将 NSNumber 转换为 NSString,并使用 performSelectorOnMainThread
显示警报视图。
[alertView performSelectorOnMainThread:@selector(show) withObject:nil waitUntilDone:NO];
在 UIAlertView Class 参考 (https://developer.apple.com/library/ios/documentation/UIKit/Reference/UIAlertView_Class/index.html#//apple_ref/occ/instp/UIAlertView/message) 中,"message" 属性 被定义为 NSString 类型。因此,尝试将 NSNumber 类型的对象 "ticketNumber"(继承自 NSValue,而不是 NSString)发送到 UIAlertView 的消息 属性 中会使编译器报错。要使用此初始化程序,首先使用其他答案中提到的 [ticketNumber stringValue]
方法调用将 ticketNumber 转换为 NSString。
我试图让一个警告框显示一个随机生成的数字,但无论我怎么玩,我都没有让它工作,我仍在网上搜索。这是我拥有的:
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];
但是,我收到的错误是 "incompatible pointer types sending 'nsnumber *' to parameter of type 'nsstring *'"。该应用程序仍然可以在我的 iPhone 上编译和运行,但是当它运行到此代码区域时,它会冻结并崩溃。我这里有什么问题吗?
尝试
[ticketNumber stringValue];
方法stringValue
用于将ticketNumber
表示为人类可读的字符串。
希望对您有所帮助
您可以使用 [ticketNumber stringValue]
将 NSNumber 转换为 NSString,并使用 performSelectorOnMainThread
显示警报视图。
[alertView performSelectorOnMainThread:@selector(show) withObject:nil waitUntilDone:NO];
在 UIAlertView Class 参考 (https://developer.apple.com/library/ios/documentation/UIKit/Reference/UIAlertView_Class/index.html#//apple_ref/occ/instp/UIAlertView/message) 中,"message" 属性 被定义为 NSString 类型。因此,尝试将 NSNumber 类型的对象 "ticketNumber"(继承自 NSValue,而不是 NSString)发送到 UIAlertView 的消息 属性 中会使编译器报错。要使用此初始化程序,首先使用其他答案中提到的 [ticketNumber stringValue]
方法调用将 ticketNumber 转换为 NSString。