说我有一些像这样的客观C:
- (void) foo:(double)doubleVal;
有没有办法让以下代码无法编译:
int integerVal;
[self foo:integerVal];
让代码成功:
double doubleVal;
[self foo:doubleVal];
理想情况下,我只能为foo做这个,而不是全局。
提前谢谢, 猎户答案 0 :(得分:0)
不,我不知道如何禁用它。一个int可以表示为double就好(例如),我认为没有办法禁用它。
问题仍然存在:为什么?也许你应该重新考虑你的设计
当然,你可以通过在整个地方使用自定义数字类型来“假装”:D
例如如果你有struct myInt和struct myDouble,它将不会改变类型