2017-03-07 3 views
2

私はChrome用のSIMBLプラグインを作成していますが、非露光型の特定のインスタンスはCでNSConcreteValueと書かれています。私はそれをアンラップしたり、セレクタを実行することはできませんが、[myInstance objCType]とタイプ文字列を取得できます。NSConcreteValueをそのobjCTypeにキャストできますか?

私が話しているタイプはGURLです。ここで

はいくつかのコードです:

NSArray* tabViews = [tabStripController performSelector:@selector(tabViews)]; 

for (id tabView in tabViews) { 

    id tabController = [tabView valueForKey:@"controller_"]; 

    id tabTitle = [tabController valueForKey:@"toolTip"]; 

    id tabUrl = [tabController valueForKey:@"url_"]; 

    NSLog(@"%@", tabTitle); 
    NSLog(@"%s", [tabUrl objCType]); 
} 

それはNSStringなので、タブのタイトルは問題ではありません。

[tabUrl objCType]戻り、この:

{GURL={basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >={__compressed_pair<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >::__rep, std::__1::allocator<char> >={__rep=(?={__long=QQ*}{__short=(?=Cc)[23c]}{__raw=[3Q]})}}}B{Parsed={Component=ii}{Component=ii}{Component=ii}{Component=ii}{Component=ii}{Component=ii}{Component=ii}{Component=ii}^{Parsed}}{unique_ptr<GURL, std::__1::default_delete<GURL> >={__compressed_pair<GURL *, std::__1::default_delete<GURL> >=^{GURL}}}} 

GURL私はGURLインスタンスのASCII文字列を取得するためにアクセスしたいと思いspec_というプロパティがあります。
GURL:https://chromium.googlesource.com/chromium/src/+/lkgr/url/gurl.h

どのようなヘルプのobjCType文字列ですか?

+0

私はC++ ABIの知識を持つコードを書くことなく、そうは思いません。私はObjC++としてコンパイルしているか、あるいは 'GURL'のためのObjCラッパーを作っています。 –

+0

ありがとうございました。つまり、ObjC++としてコンパイルすると、クラスに含まれるC++型についての知識があるということですいずれにしても、私が.mmで保存すると、コンパイル時に 'modules is disabled'エラーが発生するので、 '@ import'文を削除しなければならないと思います。 – ohdeerdog

+0

私はそうだと思いますが、おそらくヘッダーも含める必要があります。私はより具体的になることを望みます:実際に経験していることではなく、恐れています。しかし、これは私がこれに取り組んでいるかどうかを調べる方向です。 –

答えて

2

NSConcreteValueは、NSValueのプライベートサブクラスです。

NSValueにキャストしてからNSValue公開APIを使用することをおすすめします。

安全のためには、if ([myObj isKindOfClass:[NSValue class]]) {}で囲みます。

C++タイプをNSValueから引き出すことに関しては、this answerがその方法を示しています。基本的には変数を作成した後、通常通りgetValue:&myVarを呼び出します。もちろん、Objective-C++(.mm拡張子を使用)としてコンパイルし、関連するヘッダをインポートする必要があります。

関連する問題