2 loveiflower loveiflower 于 2013.08.13 15:25 提问

objective-c中NSNumber问题

爆出错误:

Incompatible pointer types assigning to 'UITextfield *_strong' from 'NSNumber *_strong

代码:

.h文件

@property (weak, nonatomic) IBOutlet UITextField *initialBudget;
@property (weak, nonatomic) IBOutlet UITextField *expenses;
@property (weak, nonatomic) IBOutlet UITextField *timeSpent;
@property (weak, nonatomic) IBOutlet UITextField *incomePerHour

计算:

- (IBAction)calculateResults:(id)sender {
    double budget = [initialBudget.text doubleValue ];
    double expense = [expenses.text doubleValue];
    double time = [timeSpent.text doubleValue];
    double hourlyIncome = (budget - expense)/time;
    NSNumber *resultNumber = [[NSNumber alloc] initWithDouble:hourlyIncome];
    incomePerHour = resultNumber;
};

2个回答

zhanglei5415
zhanglei5415   Rxr 2013.08.13 16:05
已采纳

问题出在这里

incomePerHour = resultNumber;

incomePerHour为UITextField 类型,而resultNumber为 NSNumber 类型。这两个不着边的对象怎可相互转换?

改成

incomePerHour.text=[NSString stringWithFormat:@"%f",hourlyIncome];
I_The_God
I_The_God   2016.07.08 21:32

一楼说的对,这个是数据类型不匹配

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
初认Objective-c NSNumber NSInteger int NSNumber转换
在Objective-c中有int的数据类型,还要用NSNumber?这是因为int不是对象。 NSNumber是数据对象,我们可以使用NSNumber数据对象来创建和初始化不同类型的数字对象。 #import NSNumber *myNumber,*floatNumber,*intNumber,*number1; //创建intege
Objective-c之NSNumber与int之间的转换
int 转 NSNumber: [NSNumber numberWithInt:(int)]; NSNumber 转 int [(NSNumber) intValue]; 其他数据类型类似 有些数组只能存Object对象,所以需要将普通数据类型转换成为Object型。
Objective-c中数字型字符串转换NSNumber的三种方法
在MAC OS/iOS 开发时,我们会遇到这类情况。如何将输入的符合数字格式的字符串,转换成NSNumber 类型的对象。 我首先写了这个方法:   C代码   id result;    NSString * ss;        ss=@"124";        result=[NSNumber numberWithFloat:[ss floatValue]];   
【Objective-C】OC中NSNumber数字对象的常用处理方法
之前已经学习过了基本数据类型。但是这些都市基本数据类型,它们不是对象。因此,不能向它们发送消息。 然后有时也需要将它们当做对象来处理。不如,我们需要把基本数据类型放入到集合中(在Cocoa中集中只能存放对象, 无法存放基本数据类型),那么这时我们需要将基本类型转换成数字对象.OC中提供了数据对象”NSNumber“可以将基本数据 类型”包装“成对象,这样我们就可以将基本数据类型来
Objective-C中使用NSValue、NSNull、NSNumber、NSDecimalNumber、NSData、NSMutableData 小结
参考:http://wiki.eoe.cn/page/iOS_objective-c_20020.html# 一、NSValue包装任意数据类型 可使用下面的类方法创建新的NSValue + (NSValue *) valueWithBytes: (const void *) value objCType: (const char *) type; NSValue是用来存储任意数据类型
[Objective-C] NSArray/NSDictionary/NSNumber 的语法糖
转自:http://www.cnblogs.com/ludashi/p/3893854.html   写这篇博客源于一个疑问:“WoK~, 这也行?!”。刚接触OC不久,今天做深浅拷贝的测试,无意中把获取NSArray的值写成了用下标获取的方式。当时把注意力放在了深浅拷贝的内存地址分析上了,就没太在意,测试做完啦,在回顾的时候发现数组是用下标的方式获取的! 于是就有了个疑问,在O
判断NSNumber值类型。
NSNumber *a1 = [NSNumber numberWithUnsignedInt:2];//long NSNumber *b1 = [NSNumber numberWithBool:YES];//char||BOOL NSNumber *c1 = [NSNumber numberWithChar:'a'];//char
Objective-C中NSString转NSNumber的方法
在Objective-C中,以数字格式组成的字符串经常需要转换为NSNumber对象后再使用。 例如有一个字符串对象@"111.22",需要转为NSNumber对象,最简单的方法就是这样:[NSNumber numberWithFloat:[@"111.22" floatValue]]。 这个方法先使用NSString的floatValue方法将字符串转成float,再使用NSNumber的n
objective-c 中数据类型之五 数值类(NSNumber及NSNumberFormatter)
聊聊NSNumber, NSNumber可以封装c中基本数据类型 char,int,long,float,BOOL,NSInteger,CGFloat等。
Objective-C中的BOOL/bool/Boolean/NSCFBoolean区别
原文点这儿 Objective-C用BOOL来编码真值。它是signed char的typedef,并且用宏YES和NO来相应的表示真和假。 布尔值用于条件判断,比如if和while语句,来进行有条件的逻辑或者重复运行。当判断一个条件语句,数值0为“假”,而其他任何数值为“真”。因为NULL和nil被定义为0,所以对于这些不存在的数值的条件语句也被判定为“假”。 在Objecti