我正在尝试将double
转换为NSDeciamlNumber
。这是我的代码:
- (NSDecimalNumber *)myMethod {
double amount = 42;
...
return [NSDecimalNumber numberWithDouble:amount]; // Get warning here
}
但我收到以下警告:
Incompatible pointer types returning 'NSNumber *' from a function with result type 'NSDecimalNumber *'
我做错了什么,我该如何解决?
答案 0 :(得分:0)
根据文档[NSDecimalNumber numberWithDouble:_]返回NSNumber,因此您应该更改方法声明
- (NSNumber *)myMethod {
double amount = 42;
...
return [NSDecimalNumber numberWithDouble:amount]; // Get warning here
}
答案 1 :(得分:0)
试试这个。它可能会成功
class AddUserIdToUserInfos < ActiveRecord::Migration
def self.up
change_table :user_infos do |t|
t.references :user, foreign_key: true, index:true
end
end
def self.down
t.remove_references(:user)
end
end
答案 2 :(得分:0)
numberWithDouble:
方法返回一个NSNumber对象但你想要返回NSDecimalNumber。
将其更改为
- (NSDecimalNumber *)myMethod {
double amount = 42;
return [[NSDecimalNumber alloc]initWithDouble:amount];
}
答案 3 :(得分:0)
尝试以下代码 -
- (NSDecimalNumber *)myMethod {
double amount = 42;
...
return [[NSDecimalNumber alloc] initWithDouble: amount];
}
答案 4 :(得分:0)
numberWithDouble:NSDecimalNumber的方法返回NSNumber。 在你的方法中你想返回小数,所以如果你分配一个带有小数值的新NSDecimalNumber(你的例子中的金额)就可以了。
可以使用以下方法来消除错误:
ValidationGroup