我想在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 ++中实现相同的功能吗?
答案 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 ++?在具体案例中帮助我们了解这种需求背后的原因,我们可以为您提供有用的答案。