2013-02-19 77 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