2009-09-27 71 views
5

在Xcode中(3.2雪豹)當我開始輸入了一個功能,諸如Xcode編輯器默認爲 - (void)而不是 - (voidPtr)?

-(void)myFunctionName { 

} 

當初開始鍵入代碼提示是

-(voidPtr 
  1. 有什麼區別voidvoidPtr之間?我假設voidPtr是某種指針,什麼情況下需要使用它?我想要使​​用voidPtr而不是void嗎?

  2. 我可以在編輯器中更改默認爲void的首選項,然後如果需要,我可以鍵入P並將選項卡填寫到voidPtr

  3. 是否有一種通用的方法來配置代碼提示或優先化代碼提示,以便在更晦澀的代碼提示之前顯示常見提示?

  4. 我可以創建代碼提示快捷方式嗎?在哪裏輸入幾個字符和命令來擴展常見的樣板代碼?

  5. 什麼是一些建議的實踐教程,以獲得真正的Xcode編輯效率?

更新:基於達倫的建議,它看起來像voidPtr來自

CarbonCore/Threads.h 

... 

/* 
    The following ProcPtrs cannot be interchanged with UniversalProcPtrs because 
    of differences between 680x0 and PowerPC runtime architectures with regard to 
    the implementation of the Thread Manager. 
*/ 
typedef void *       voidPtr; 

我運行一個新鮮香草的Xcode安裝雪豹的。我的項目並沒有做任何異國情調。在Xcode和Objective C中開始一些非常基礎的教程。任何有經驗的Objective C人員都會在這裏獲得有用的背景信息?

回答

2

更新:舊版本的Xcode中的錯誤。錯誤#7256749已被修復。我只是嘗試了最新版本的Xcode,而一切都是玫瑰花。

歷史信息:(爲的Xcode 4.0版本之前的Xcode版本)

如果你開始鍵入C風格的函數聲明:

void SomeFunc(... 

然後 「無效」 將出現第一個建議。 Xcode的代碼意義根據周圍的語法應用了不同的規則,並且在創建Objective-C函數聲明時,似乎排除了所有內置類型,包括void

我已經提交了一個蘋果的錯誤(通過bugreport.apple.com),我建議你也這樣做。 Apple根據他們針對給定問題看到的重複報告的數量,優先考慮他們的軟件修復(至少部分)。

注:這裏是提交給蘋果的bug報告全文:

摘要:當您輸入
Xcode的代碼感提供建議的匹配列表。該列表根據上下文進行過濾。當輸入Objective-C方法聲明時,內置類型(void,int,float等)被濾除。爲了鼓勵使用NSInteger或NSNumber,可能會故意丟失數字類型(如int和float),但void類型始終在使用,並且應該確實出現在建議列表中。

重現步驟:
1.打開Xcode的
2.創建Cocoa應用程序模板
3.打開應用程序委託頭文件
4.開始一個返回值爲void創建方法聲明一個新項目類型:
- (VO
5.按逃生帶來了建議完成

預期成果的完整列表:
我希望看到「無效「,並且我希望它被突出顯示爲最可能的選擇。

實際結果:
列表不甚至含有「無效」,並且所選的候選人是「voidPtr」,這是在CarbonCore/Threads.h

迴歸宣稱:
未知的,但它肯定發生在Xcode(3.2(1610))在Mac OS X10.6

注意最新版本:
上StackOverflow.com 見討論(Xcode editor default to -(void) instead of -(voidPtr)?

+0

謝謝你的迴應。還提交了一個錯誤報告。 有沒有辦法在Xcode中自定義過濾器選項? –

+0

不是我所知道的。我發現有些默認設置有時令人沮喪,但總體來說它仍然有效。如果你找到一種方法來定製它們,一定要讓我們知道! –

+0

Apple已經用Xcode 4.0版解決了這個問題。答案已更新。 –

1

voidPtr不是標準的Objective-C或Cocoa類型。 XCode可能會提供voidPtr,因爲它在您的項目中找到了該符號。

您可以從菜單中選擇「文件>快速打開」(⌘+ D),然後輸入voidPtr以查看符號的定義位置。您也可以按住Command鍵並在源代碼中雙擊一個符號來做同樣的事情。

相關問題