一般來講將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
];