C++对象到Objective-C的参数传递

原文地址:http://www.cocoachina.com/macdev/objc/2009/0611/217.html

通常来说将C++对象做为参数传递给Objective-C的方法中是比较方便的。

举例来说,比如我们有一个NSString的初始化方法,我们希望传递一个std::string做为参数传进去。

只要你传递了对象的指针,事情就完成了,不过你还可以在参数中使用“被指向”的形式,下面用例子来说明。

比如这样一个方法:

  1. +  ( NSString * )stringWithCxxString : (std :: string const & )cxxString
  2. {
  3.     return  [[[ NSString  alloc ]  initWithBytes :cxxString. data ()
  4.                                      length :cxxString. size ()
  5.                                    encoding :NSUTF8StringEncoding ]  autorelease ];
  6. }

 我们在使用的时候就可以这样用:

  1. std :: string dir   = get_some_dir ();
  2. std :: string  file  = get_some_file ();
  3.  
  4. NSString * str     =  [ NSString stringWithCxxString :dir  +  file ];

你可能感兴趣的:(mac开发)