2017-02-20 3 views
2

名前&電子メールIDを含む客観的なC++のModelクラスを作りたいと思います。 のように、我々はスウィフト3の元に何をすべきか: -Objective C++でModelクラスを作成するには?

import UIKit 

class modelDemo: NSObject { 

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

&は、我々は元のようにmodelDemoにアクセスしている: -

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

は、我々は客観Cで同じことを実装することができ++?

+2

Objective-C++では、Objective-CクラスまたはC++クラスの作成を選択できます。どちらを作成したいですか? – Sulthan

+0

Objective C++クラス.mm拡張子 – Jack

+3

Obj-C++クラスはありません。 Obj-C++はObj-CとC++の組み合わせです。 Obj-CクラスまたはC++クラスを作成できます。 C++クラスは 'NSObject'から継承することはできません。 – Sulthan

答えて

-1
@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); 
0

あなたの質問は非常に明確ではないが、私はアイデアを持っているかもしれないと思います。 ObjCクラスのサブクラスであるC++クラスを作成することが可能かどうか質問していますか

SwiftはC++ではありませんが、ソースコードのSwiftクラスはC++クラスとよく似ていますが、内部的にはObjCクラスに似ています。そのため、ObjCクラスのサブクラスであるSwiftクラスを作成できます。

これはC++では動作しません。 ObjC++でできることは、インスタンス変数の1つとしてC++クラスを含むObjCクラス、またはObjCクラスを含むC++クラスを作成することだけです。これを行うと、メッセージに反応してC++クラスなどに転送するコードを書くことができますが、C++やそれ以外の方法でObjCクラスをサブクラス化する方法はありません。

また、ファイルとクラスの違いについても読んでください。ファイルには、0以上のクラスを含めることができます。 ObjCファイルにはObjCクラスを含めることができ、C++ファイルにはC++クラスを含めることができます。 ObjC++ファイルには、ObjCクラスおよび/またはC++クラスを含めることができます。

必要なものを選択する必要があります。あなたは何のためにこれを使用していますか、なぜですか? ObjC++クラスのようなものはありません。なぜあなたはObjC++を使いたいのですか? ObjCやC++だけではどうでしょうか?あなたの具体的なケースでその必要性の背後にある理由を理解するのを手伝ってください。

関連する問題