是否可以在objective-c中禁用自动类型提升

时间:2014-09-23 20:53:52

标签: objective-c type-promotion

说我有一些像这样的客观C:

- (void) foo:(double)doubleVal;

有没有办法让以下代码无法编译:

int integerVal;
[self foo:integerVal];

让代码成功:

double doubleVal;
[self foo:doubleVal];

理想情况下,我只能为foo做这个,而不是全局。

提前谢谢, 猎户

1 个答案:

答案 0 :(得分:0)

不,我不知道如何禁用它。一个int可以表示为double就好(例如),我认为没有办法禁用它。

问题仍然存在:为什么?也许你应该重新考虑你的设计

当然,你可以通过在整个地方使用自定义数字类型来“假装”:D
例如如果你有struct myInt和struct myDouble,它将不会改变类型