Re: [問題] 請問.cp .m問題
※ 引述《RichieRich (Richie)》之銘言:
: 請問副檔名.m是不是無法存取 std 的
: .cp 的東西無法存取cocoa ns的東西?
: 請問還是有啥解決方式?
我猜,你要問的是:
1. 怎樣在Objective-C的程式中,存取C++的程式碼?
2. 怎麼在C++中,存取Objective-C的程式碼?
關於第一點,請將副檔名改成.mm
至於第二點,你恐怕得將Objective-C的程式,先用一個C++的類別包起來,
然後再由別的C++檔案去存取,像是下面:
//Objective-C header, MyObject.h
@interface MyObject: NSObject
{
//...blahblah
}
- (void)myMethod:(int)parameter;
//...blahblah
@end
//Obj-C實作省略。
//Objective-C++ ,C++ style class, MyWrapper.h
class MyObject;
class MyWrapper
{
public:
MyWrapper();
~MyWrapper();
void myMethod(int parameter);
private:
MyObject* myObject;
};
//Objective-C++, implementation, MyWrapper.mm
//建構,解構省略
MyWrapper::myMethod(int parameter)
{
if(myObject)
{
[myObject myMethod:parameter];
}
}
然後在你真正用到的地方使用wrapper:
//Somewhere at XXX.cp
int XXX::someFunction()
{
MyWrapper* wrapper = new MyWrapper;
wrapper->myMethod(123);
delete wrapper;
}
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 219.84.252.229
推
05/12 20:29, , 1F
05/12 20:29, 1F
推
05/13 00:22, , 2F
05/13 00:22, 2F
→
05/13 01:19, , 3F
05/13 01:19, 3F
→
05/13 01:20, , 4F
05/13 01:20, 4F
推
05/13 10:36, , 5F
05/13 10:36, 5F
→
05/13 10:36, , 6F
05/13 10:36, 6F
推
05/13 13:59, , 7F
05/13 13:59, 7F
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 2 之 2 篇):