gpt4 book ai didi

iphone - 不同类型的对象作为函数的参数

转载 作者:行者123 更新时间:2023-12-03 20:56:58 25 4
gpt4 key购买 nike

我从 NSObject 创建了 2 个对象子类

A对象,B对象

是否可以将这两个对象的变量传递给同一个函数?

比如

-(void)myFunction:(AObject *)obj;

-(void)myFunction:(BObject *)obj;

我在xcode下测试过,是不允许的。有什么替代方法吗?

欢迎大家留言

谢谢交互开发

最佳答案

有多种选择。我想到了以下四种,每种都有自己的优点和缺点:

  1. 通过签名进行歧视:

    - (void)myFunctionWithA:(AObject *)obj;
    - (void)myFunctionWithB:(BObject *)obj;
  2. 声明 NSObject * 类型的参数(或 id ,如评论中所建议)并查询函数内的类型。

  3. 如上所述,但通过声明公共(public)基类来限制它 BaseObject * ,其中AObjectBObject继承。
  4. 将基类与蹦床技术相结合:

    - (void)myFunction:(BaseObject *)base {
    [base myTrampoline:self];
    }

    BaseObject声明抽象方法myTrampoline: ,其中AObjectBObject实现。

如果不进一步了解您的问题,就不可能说出哪个是最好的。

关于iphone - 不同类型的对象作为函数的参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4351620/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com