2013-10-20 39 views
0

使用Objective C++文件在C++類中使用Objective C對象是否存在任何缺點(性能或其他)?例如,如直接的NSString像這樣使用目標C類型之間的差異:與使用標準庫C++字符串和包裹它們變成NSString的事後在C++類(.mm文件)中使用Objective C對象/類型的任何缺點?

class Hello { 
private: 
    NSString *text; 

public: 
    Hello() { this->text = @"Hello, world!"; 
    ~Hello(); 
    NSString* helloWorld() { return this->text; } 
}; 

。是否有任何直接使用Objective C「類型」的原因較差?我聽說有人建議保持Objective C和C++儘可能分離,我希望聽到這背後的理由。無論哪種方式,我都會隱藏C++類的Objective C接口,無論從.m文件中調用它。

回答

0

我不認爲性能有任何問題,但是我不清楚爲什麼要將Objective-C對象封裝在C++對象中。

保持C++純粹C++的一個原因是,它可以與其他C++對象進行交互,一旦包含Objective-C對象,就不再可能與其他C++對象進行交互。

爲了讓一個C++對象與一個嵌入式Objective-C對象一起被另一個C++類使用(它需要「看到」頭文件)我想你必須使用void *或者其他的東西。

+0

你能用一個模板創建一個C++類,然後從'.mm'中使用一個Objective C對象嗎?如'vector ' –

+0

@pk_nb但是爲什麼? 'NSArray'已經涵蓋了。 – trojanfoe

+0

這只是一個(不好)的例子。我正在考慮用C++編寫一個二叉樹(希望保持通用),並將其與Objective C對象一起使用。 –