cocoa绑定与c ++库

时间:2013-01-13 21:30:52

标签: c++ cocoa-bindings nsarraycontroller

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

在纯Objective-C中构建了一个小的测试程序,它运行正常但是当我尝试使用c ++库构建一个程序时,似乎没有任何事情发生,它会编译并启动,但是tableviews等没有任何反应。 / p>

或许不应该问是否可以使用绑定到c ++,而不是它们是否值得为Objective-c / cocoa新手使用。

由于

1 个答案:

答案 0 :(得分: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:'