如果您必须在模型中使用 c++,是否可以使用绑定(NSArrayController 等),即模型中的所有文件都具有 .mm 扩展名。
已经用纯 Objective-C 构建了一个小型测试程序,它工作正常,但是当我尝试使用 c++ 库构建一个程序时,似乎什么也没发生,它编译并启动,但 tableviews 等什么也没发生。
人们或许不应该问是否可以使用与 c++ 的绑定,而应该问对于一个 Objective-c/cocoa 新手来说它们是否值得。
谢谢
如果您必须在模型中使用 c++,是否可以使用绑定(NSArrayController 等),即模型中的所有文件都具有 .mm 扩展名。
已经用纯 Objective-C 构建了一个小型测试程序,它工作正常,但是当我尝试使用 c++ 库构建一个程序时,似乎什么也没发生,它编译并启动,但 tableviews 等什么也没发生。
人们或许不应该问是否可以使用与 c++ 的绑定,而应该问对于一个 Objective-c/cocoa 新手来说它们是否值得。
谢谢
你是对的,我替换了这个c++代码
/ / Get the attribute
for (oscar :: ODStruct :: iterator iter = data.begin (); ites! = data.end (); iter + +)
{
mem = iter-> second;
if (mem.get (s_vals))
for (auto i = s_vals.begin (); in! = s_vals.end (); i + +)
[_owner SetValue: [NSString string with format: @ "% s", i-> c_str ()]
forKey: [NSString string with format: @ "% s", iter-> first.c_str ()]];
else if (mem.get (i_vals))
for (auto i = i_vals.begin (); in! = i_vals.end (); i + +)
[_owner SetValue: [NSString string with format: @ "% d", * i]
forKey: [NSString string with format: @ "_% s", iter-> first.c_str ()]];
else if (mem.get (f_vals))
for (auto i = f_vals.begin (); in! = f_vals.end (); i + +)
[_owner SetValue: [NSString string with format: @ "% f", * i]
forKey: [NSString string with format: @ "_% s", iter-> first.c_str ()]];
else if (mem.get (d_vals))
for (auto i = d_vals.begin (); in! = d_vals.end (); i + +)
[_owner SetValue: [NSString string with format: @ "% lf", * i]
forKey: [NSString string with format: @ "_% s", iter-> first.c_str ()]];
else
std :: cout << "Do not find for" << iter-> first.c_str () << std :: endl;
}
使用以下 obj-c 代码
_owner.name = @ "test"
_owner.type = @ "test1"
_owner.unit = @ "test2"
然后它起作用了!在课堂上留下了另一个C++ kode,所以我可能错过了“setValue:forKey:'