簡體   English   中英

使用Objective-C ++和Interface Builder遇到麻煩

[英]Trouble with Objective-C++ and Interface Builder

我的視圖控制器類利用了Objective-C ++類。 我發現我必須使用.mm擴展名來命名它,C ++導入/包含才能正常工作。 但是,我使用的是Interface Builder,它不希望將我的視圖控制器作為.mm文件很好地播放。 我得到編譯器分段錯誤。 對於這種用例有什么建議嗎?

首先,正如Akaru在其評論中建議的那樣:重命名導入到.mm(整個鏈)的所有工具文件。

編譯錯誤的另一種可能性:

  1. 確保不要將c ++保留關鍵字用作變量名。 示例:我在重命名的.m實現文件中刪除了變量。 我必須將其更改為.mm文件中的any_other_delete_varible_name 最有可能的是,變量名,例如: friend, delete, typeid是最大的可疑對象;-)

引用自: http : //cs.smu.ca/~porter/csc/ref/cpp_keywords.html

還有30個不在C中的保留字,因此對於C ++來說是新的 ,它們是:

asm         dynamic_cast  namespace  reinterpret_cast  try
bool        explicit      new        static_cast       typeid
catch       false         operator   template          typename
class       friend        private    this              using
const_cast  inline        public     throw             virtual
delete      mutable       protected  true              wchar_t

2。 C ++編譯器對類型轉換更嚴格(例如:嘗試將NSString分配給id類型時出現錯誤,等等。)如果有必要,請使用技巧來避免這種情況:將NSString變量聲明為id本身解決了問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM