私は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文字列ですか?
私はC++ ABIの知識を持つコードを書くことなく、そうは思いません。私はObjC++としてコンパイルしているか、あるいは 'GURL'のためのObjCラッパーを作っています。 –
ありがとうございました。つまり、ObjC++としてコンパイルすると、クラスに含まれるC++型についての知識があるということですいずれにしても、私が.mmで保存すると、コンパイル時に 'modules is disabled'エラーが発生するので、 '@ import'文を削除しなければならないと思います。 – ohdeerdog
私はそうだと思いますが、おそらくヘッダーも含める必要があります。私はより具体的になることを望みます:実際に経験していることではなく、恐れています。しかし、これは私がこれに取り組んでいるかどうかを調べる方向です。 –