如何为Objective-C类创建全局别名?

时间:2013-02-19 22:07:52

标签: objective-c xcode alias autocorrect

我一直为NSStrung键入NSStrongNSString。它今天非常糟糕,它让我希望我有一个全球别名,所以他们就像NSString一样工作。

这让我想知道这是否可以在Xcode中为类名(或函数)设置全局别名?无需编写代码。

也许甚至有一些方法可以让Xcode自动更正NSStrung和NSStrong到NSString,或者在任何程序中执行此操作的工具。

5 个答案:

答案 0 :(得分:7)

您所寻找的当然是:

@compatibility_alias ExistingClass OldClass;

这非常简单,但如果您需要更多信息,可以在GCC manualthis NSHipster article

中阅读相关信息

答案很晚,但您的问题是DuckDuckGo中objective-c class alias搜索字词的第一个链接

修改:相关问题为answered on this SO

答案 1 :(得分:2)

我认为您应该尝试正确使用它,但作为您问题的可能答案,您可以在“语言和文本”系统偏好设置中设置NSStrong和NSStrung文本替换条目。在Xcode中启用编辑>格式>替换>文字替换。

理论上应该可以工作,但是现在我已经在我的电脑上试过它似乎是不一致的,而且每次都不做更换。这个问题可能是我的电脑特有的,所以也许可以尝试一下。

另一个帮助你的方法是为NSString添加一个代码片段,其中“快捷方式”为NSStrung / NSStrong,当你输入它时,只需按回车键/返回/标签即可获得正确的NSString 。缺点是如果你按下空格键就不会纠正它,如果你没有看屏幕,那就是正常情况。

答案 2 :(得分:0)

我刚回答了一个问题,并记住了这一点。 Here是我的问题。

基本上你可以做的是在默认的Prefix.pch文件中有#define NSStrung NSString(和其他人)。

我建议您在自己的自定义模板中执行此操作,但也可以通过打开plist /Applications/Xcode.app/Contents/Developer/Library/Xcode/Templates/Project Templates/Base/Base.xctemplate/TemplateInfo.plist并在Definitions > ___PACKAGENAME___-Prefix.pch > Beginning的值中添加#defines(如上所述)来执行此操作键。

这绝对不是最佳做法,但它可以解决您的问题。使用风险自负。

答案 3 :(得分:0)

typedef怎么样

typedef exist_class new_class;

答案 4 :(得分:-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✝痒痒你的幻想 ..

对于所有玩家仇恨那些...谁想要实际使用他们的代码...喘气..其他人 ...你可以轻松地在“标准”/“长期之间移动-form“和你的”内部“”快捷方式“via git's smudge and clean,没有人知道你的肮脏小秘密。在签出/提交等之前/之后,只需预先/后处理您想要的“替换”。