问题描述
- OC中有方法重载吗?具体是怎么样?
-
oc中有方法重载吗?那位大神具体描述下?看了好多都没有描述清楚!还是不知道到底有没有重载
解决方案
Objective-C不支持方法重载。
下列两个方法:
- (void)doSth:(NSInteger)integer;
- (void)doSth:(NSString *)str;
对Objective-C而言是一样的,都叫方法doSth:
同时定义实现这两个方法是无法编译通过的。
若要达到类似重载的效果,可以这样跟不同参数: - (void)doSth withInt:(NSInteger)integer;
- (void)doSth withStr:(NSString *)str
顺便提一下,我也在网上搜索过,含有关键字重载的,其实是子类继承父类后把父类的方法重写了。
重载overload,是同一类中方法名相同参数签名不同的方法,重写override的是以相同的函数签名覆盖父类相同的方法。
解决方案二:
Objective-C的函数标签与C++不一样的,冒号前面的才是标签
解决方案三:
在oc 中这样写是报错的 原因在于 都是doSth 你在调用的时候 不知道要传什么属性的值 模拟器根本不认识 也无法区分你想要传的参数类型 这里和c++不同
解决方案四:
没有没有没有没有没有没有没有
解决方案五:
没有重载voerLoad,有重写。overWrite
解决方案六:
ios没有重载 swift 有。
时间: 2024-12-21 01:54:29