1

I keep typing NSStrung and NSStrong for NSString. It was so bad today, it made me wish I had a global alias for those so they worked just like NSString.

This made me wonder if this is somehow possible to setup a global alias for a class name (or function) in Xcode? Without writing code that is.

Perhaps there's even some way that I can Xcode to autocorrect NSStrung and NSStrong to NSString, or a tool that does this in any program.

4

5 回答 5

8

您正在寻找的当然是:

@compatibility_alias ExistingClass OldClass;

它非常简单,但如果您需要更多信息,可以在GCC 手册此 NSHipster 文章中阅读相关信息

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

编辑:在这个 SO 上回答了一个相关问题

于 2015-04-08T08:03:47.783 回答
3

我认为您应该尝试做对,但作为您问题的可能答案,您可以在“语言和文本”系统偏好设置中设置 NSStrong 和 NSStrung 文本替换条目。在 Xcode 中启用 Edit > Format > Substitutions > Text Replacement。

理论上应该可以,但是现在我已经在我的电脑上尝试过了,它似乎并不一致,并且不会每次都进行替换。这个问题可能是我的电脑特有的,所以也许试试看。

另一个帮助您的选项是为 NSString 添加一个片段,其中“快捷方式”为 NSStrung/NSStrong ,这样当您输入它时,您只需按 enter/return/tab 即可获得正确的NSString. 不利的一面是,如果您按下空格键,它不会纠正它,这是您不看屏幕时通常会做的事情。

于 2013-02-19T22:30:21.023 回答
0

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

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

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

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

于 2013-04-26T05:38:42.263 回答
0

typedef 怎么样。

typedef exist_class new_class;
于 2020-02-26T16:29:10.540 回答
-10

这很容易/很棒/我一直都这样做(甚至毫不掩饰地极端)..

有关如何在您的代码/免责声明等中使用的好建议,请参阅@7usam 的答案...... 但请转到我的项目的 AtoZMacroDefines.h 以获得更多的好处......

#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

我实际上是从 plist创建这个文件,它很容易编辑,等等......然后我有一个为我生成标题的机制。再一次,看看这个项目,如果这种 ⓢi✝ 满足你的喜好..

对于所有讨厌的玩家......谁想要真正使用他们的代码......喘不过气来......其他人......您可以轻松地在“标准”/“长格式”和“内部”“快捷方式之间移动“ 通过 git 的 smudge and clean,没有人知道你肮脏的小秘密。只需在签出/提交之前/之后处理/处理您想要的“替换”等。

于 2014-01-26T00:18:14.810 回答