0

如果您必须在模型中使用 c++,是否可以使用绑定(NSArrayController 等),即模型中的所有文件都具有 .mm 扩展名。

已经用纯 Objective-C 构建了一个小型测试程序,它工作正常,但是当我尝试使用 c++ 库构建一个程序时,似乎什么也没发生,它编译并启动,但 tableviews 等什么也没发生。

人们或许不应该问是否可以使用与 c++ 的绑定,而应该问对于一个 Objective-c/cocoa 新手来说它们是否值得。

谢谢

4

1 回答 1

0

你是对的,我替换了这个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:'

于 2013-01-15T21:49:48.170 回答