如何在Objective C ++中创建Model类?

时间:2017-02-20 13:34:04

标签: ios objective-c swift swift3 objective-c++

我想在Objective c ++中创建Model类,其中包含Name&电子邮件ID。 就像我们在Swift 3中做的那样: -

import UIKit

class modelDemo: NSObject {

    var name : String = ""
    var emailId : String = ""
}

&安培;我们正在访问modelDemo,例如ex: -

  let modelVar : [modelDemo] = []
   // after inserting values in Model 
    print("first object is \(modelvar[0].name)")

我们可以在目标c ++中实现相同的功能吗?

2 个答案:

答案 0 :(得分:0)

@interface ModelDemo: NSObject
@property (noatomic, copy) NSString* name;
@property (noatomic, copy) NSString* emailId;
@end

@implementation ModelDemo
@end

...

ModelDemo* model = [ModelDemo new];
model.name = "Hello"
NSArray<ModelDemo*> *array = @[model];
NSLog(@"Name: %@",array[0].name);

答案 1 :(得分:0)

你的问题很不清楚,但我想我可能有一个想法。您是否可以创建一个作为ObjC类的子类的C ++类

Swift不是C ++,即使源代码中的Swift类看起来与C ++类非常相似,但它在内部更类似于ObjC类。这就是为什么你可以创建一个Swift类,它是ObjC类的子类。

但这不适用于C ++。使用ObjC ++可以做的就是创建一个ObjC类,它包含一个C ++类作为其实例变量之一,或者包含一个包含ObjC类的C ++类。如果你这样做,你可以编写对消息作出反应并将其转发到C ++类等的代码,但是没有办法使用C ++或其他方法对ObjC类进行子类化。

此外,您应该了解文件和类之间的区别。一个文件可以包含0个或更多个类。 ObjC文件可以包含ObjC类,C ++文件可以包含C ++类。 ObjC ++文件可以包含ObjC类和/或C ++类。

你必须选择你需要的东西。你有什么用它,为什么?没有ObjC ++类这样的东西。你为什么想用ObjC ++?为什么不单独使用ObjC或C ++?在具体案例中帮助我们了解这种需求背后的原因,我们可以为您提供有用的答案。