2013-02-19 48 views
1

對於NSString,我繼續輸入NSStrungNSStrong。今天真是太糟糕了,它讓我希望我有一個全球化的別名,所以他們的工作就像NSString如何爲Objective-C類創建全局別名?

這讓我想知道這是否有可能在Xcode中爲類名(或函數)設置全局別名?沒有編寫代碼。

也許有一些方法可以讓Xcode自動將NSStrung和NSStrong自動更正爲NSString,或者是在任何程序中都可以執行此操作的工具。

+4

像TextExpander和Typinator這樣的工具可以在您鍵入時進行文本替換;你可以使用其中的一個來設置一個NSStrung-to-NSString片段。 – Tim 2013-02-19 22:10:51

+2

在編譯器設置中始終存在'-Dmystring = NSString'等待被濫用的情況,但這會導致任何讀取您的代碼的人產生嚴重的詛咒。 – dasblinkenlight 2013-02-19 22:13:16

+0

使用Typinator過去2個月,非常有幫助! – LearnCocos2D 2013-04-26 09:21:37

回答

2

我想你應該設法得到它的權利,但作爲一個可能的回答你的問題,你可以在「語言和文本」系統偏好設置NSStrong和NSStrung文本替換項。在Xcode中啓用編輯>格式>替換>文本替換。

理論上應該可以工作,但現在我已經在我的電腦上試過了,它似乎是不一致的,並且不會每次都進行更換。這個問題可能是特定於我的電腦的東西,所以也許試試看。

另一種幫助你的選擇是爲NSString添加一個代碼片段,其中「shortcut」是NSStrung/NSStrong,這樣,當你輸入它時,你只需按Enter/Return/Tab即可獲得正確的NSString。不足之處在於,如果按下空格鍵,則不會糾正它,而如果您沒有在屏幕上查看,通常會這樣做。

+0

Xcode中的文本替換對我無效,但它們在其他程序中正常工作。 Typinator也適用於Xcode,我正在測試它。 – LearnCocos2D 2013-02-19 23:37:13

+0

@ LearnCocos2D它修正了NSStrung,當它是一個標識符例如:'id NSStrung':/不太有用 – 7usam 2013-02-20 00:17:40

0

我只是有一個問題的回答雷並記住這一點。 Here是我的問題。

基本上你可以做的是有#define NSStrung NSString(及其他)默認Prefix.pch文件。

我建議這樣做在自己的自定義模板,但你也可以通過打開的plist /Applications/Xcode.app/Contents/Developer/Library/Xcode/Templates/Project Templates/Base/Base.xctemplate/TemplateInfo.plist,並在Definitions > ___PACKAGENAME___-Prefix.pch > Beginning關鍵的增值你的#define(如上所述)做到這一點。

這絕對不是最好的做法,但它可以解決你的問題。使用風險自負。

-10

這是很容易/精彩/我做這一切的時候(不加掩飾地到了極致,偶數)..

見@ 7usam對如何在你的代碼/免責聲明等使用好的建議答案.. but go to my project's AtoZMacroDefines.h for more goodness沿線的..

#define   NSR NSRect 
#define   NSPI NSProgressIndicator 
#define  NSSPLTV NSSplitView 
#define   NSTSK NSTask 
#define   NSS NSString 
#define   NSIV NSImageView 
#define   NSBWM NSBorderlessWindowMask 
#define   NSDO NSDragOperation 
#define   NSSEGC NSSegmentedControl 
#define   NST NSTimer 
#define   NSRNG NSRange 
#define   NSMIS NSMutableIndexSet 
#define   NSTBAR NSToolbar 
#define   NSSZ NSSize 
#define   NSAPP NSApplication 
#define   NSDE NSDirectoryEnumerator 
#define   NSVAL NSValue 
#define  NSDCLASS NSDictionary.class 
#define   NSFH NSFileHandle 
#define   NSBUTT NSButton 
#define  NSURLRES NSURLResponse 
#define   NSV NSView 
#define   NSA NSArray 

其實我創建這個文件from a plist,這是很容易編輯等...然後我有一個生成的頭對我的一種機制。再次,檢查出來的項目,如果這種ⓢi✝的逗你的幻想 ..

對於所有玩家的仇敵在那裏......誰想要實際上使用的代碼..喘息..其他人 ...你可以很容易的「標準」 /「長表」和你的「內部」,「快捷方式」 via git's smudge and clean之間移動,沒有任何人知道你的骯髒的小祕密。只需在檢出/提交之前/之後預先/後處理/取出所需的「替換物」等等。

+2

我想你不會在團隊中工作......或者你的隊友偷偷地恨你。 ;)那些自定義縮寫是沒有意義的,在保持代碼表現力和可讀性的同時,輸入較少的自動完成。 – LearnCocos2D 2014-01-26 00:24:03

+1

不錯,它適合你,但像這樣的東西是一個噩夢,當你在一個團隊工作。 – Abizern 2014-01-26 00:24:38

+0

@ LearnCocos2D請參閱我的編輯,瞭解我對該問題的解決方案。 – 2014-01-26 00:33:47

6

你要找的肯定是:

@compatibility_alias ExistingClass OldClass;

這是非常簡單的,但如果你需要更多的信息,你可以在GCC manualthis NSHipster article

讀到它的答案是相當晚但你的問題是第一個鏈接在DuckDuckGo爲objective-c class alias搜索條件

編輯:一個相關的問題是answered on this SO

+0

應該是被接受的答案 – brandonscript 2015-05-01 18:17:02