【问题标题】:How to transfer a Class to another Class in Objective-C?Objective-C中如何将一个类转移到另一个类?
【发布时间】:2017-07-28 03:18:51
【问题描述】:

例如,我有一个名为 PlayListModel 的类,它有一个属性:id 。我还有其他类,比如 PlayModel_A 或 PlayModel_B ,它们有很多属性。

现在我想要的是有一个类似的方法:

  - (PlayListModel*)transferAnClass:(id)anClass ToPlayListModel;

我想将其他模型转移到统一的 PlayListModel ,而不是将 PlayListModel 传递给播放器。

我的问题是,其他模型的源名称不同。有些是“idField”,有些是“idsource”或其他。所以需要将它们转移到Playlist的属性名:'id'(例如)。

我尝试使用运行时,但我无法获得类的确切名称,它们可能是任何模型类。

我可以使用 [class Class] 来知道它是哪个类。但后来我不能使用 Class.property 。我不知道怎么解释。

【问题讨论】:

  • 为什么Student 不是Person 的类型?
  • 你提到的是经典的继承案例。您的学生和警察必须从 People 类继承。然后你会自动拥有这两个属性。

标签: ios model objective-c-blocks


【解决方案1】:

听起来你想做的是子类 People..

@interface Student : People
//properties & method names here
@end

@implementation Student
//code here
@end

【讨论】:

  • 问题没那么简单。我不能使用继承。因为某些模型可能具有相同的属性。而其他人则没有。我已经编辑了我的问题。
  • 为什么相同的模型有不同的属性名称?对不起,我不明白
【解决方案2】:

您可以单独创建 People 模型并在 Student 或 Police 中使用该模型的对象

class People   { 
    private var _age : Int = 0
    private var _name : String = ""
}

和 Student 类为

class Student   { 
private var _student_id : Int = 0
private var _student_rollno : String = ""
let _people : People 
}

如果您需要发送数据,您可以直接传递学生或警察类的对象。

您也可以选择继承。在 Student 或 Police 类中继承您的 People 类。您可以轻松访问和修改 Student 或 Police 类中 People 类的属性。

【讨论】:

  • 如果你想在 Objective-C 中使用它,请告诉我。
  • 你投反对票??应该始终说明相同的原因。我很快就错过了语言标签。如果需要,我可以在 Objective-C 中提供相同的内容
  • 不是我。问题不是那么容易。我已经编辑了我的问题。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-10-30
相关资源
最近更新 更多