一般来讲将C++对象作为参数传递给Objective-C的方法中是比较方便的。
举例来讲,好比咱们有一个NSString的初始化方法,咱们但愿传递一个std::string作为参数传进去。
只要你传递了对象的指针,事情就完成了,不过你还能够在参数中使用“被指向”的形式,下面用例子来讲明。
好比这样一个方法:
-
+
(
NSString
*
)stringWithCxxString
:
(std
::
string const
&
)cxxString
-
{
-
return
[[[
NSString
alloc
]
initWithBytes
:cxxString.
data
()
-
length
:cxxString.
size
()
-
encoding
:NSUTF8StringEncoding
]
autorelease
];
-
}
咱们在使用的时候就能够这样用:
-
std
::
string dir
= get_some_dir
();
-
std
::
string
file
= get_some_file
();
-
-
NSString
* str
=
[
NSString stringWithCxxString
:dir
+
file
];