草庐IT

objective-c - Xcode 的任何 ReSharper 等价物?

coder 2023-04-26 原文

我是一个完整的 Xcode/Objective-C/Cocoa 新手,但我学得很快,并且真正开始享受掌握新语言、平台和范例的乐趣。

但有一件事是,我已经用 R# 使用 Visual Studio 这么久了,我有点被重构和完成等编码工具宠坏了,据我所知,Xcode 内置了一些相当有限的东西支持这个东西。

关于这一点,有没有人知道是否有任何插件或任何可用于 Xcode 环境的插件或任何可用于添加编码助手的插件,例如从类接口(interface)定义自动生成实现框架等?

我怀疑没有,但我想这无济于事。

最佳答案

您听起来好像在寻找三个主要的东西:代码模板、重构工具和自动完成。

好消息是 Xcode 3 及更高版本具有出色的自动完成和模板支持。默认情况下,您必须通过点击转义键来明确请求完成。 (这实际上适用于所有 NSTextView;试试吧!)如果你想让补全自动出现,你可以去 Preferences -> Code Sense 并将弹出窗口设置为几秒钟后自动出现。您应该找到 C 和 Objective-C 代码的良好补全,以及 C++ 相当好的补全。

Xcode 还有一个可靠的模板/骨架系统供您使用。您可以通过编辑 -> 插入文本宏来查看默认可用的模板。当然,您不想用鼠标插入文本宏;这违背了这一点。相反,您有两种选择:

  1. 返回 Preferences,转到 Key Bindings,然后在 Menu Key Bindings 下,为您经常使用的宏分配特定的快捷方式.我个人并不介意这样做,但我认识很多优秀的 Mac 开发人员都这样做
  2. 使用 CompletionPrefix。默认情况下,几乎所有的模板都有一个特殊的前缀,如果您键入然后按转义键,将导致模板被插入。您可以使用 Control-/在完成字段之间移动。

    你可以看到a full list of Xcode's default macros and their associated CompletionPrefixesCrooked Spin .

    您还可以添加自己的宏,或修改默认值。为此,请编辑文件 /Developer/Library/Xcode/Specifications/{C,HTML}.xctxtmacro。如果不是非常友好,语法应该是不言自明的。

不幸的是,如果您沉迷于 R#,您会对您的重构选项感到失望。通过上下文菜单或按 Shift-Apple-J 在 Xcode 中提供基本重构。从那里,您可以提取和重命名方法,通过类层次结构提升和降级它们,以及一些其他常见操作。不幸的是,Xcode 和任何第三方实用程序都没有提供任何接近 Resharper 的东西,所以在这方面,你目前不走运。值得庆幸的是,Apple 已经在工作中展示了 Xcode 版本,它们极大地改进了重构功能,因此希望您不必等待太久,情况就会开始好转。

关于objective-c - Xcode 的任何 ReSharper 等价物?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20420/

有关objective-c - Xcode 的任何 ReSharper 等价物?的更多相关文章

  1. ruby - 为什么我可以在 Ruby 中使用 Object#send 访问私有(private)/ protected 方法? - 2

    类classAprivatedeffooputs:fooendpublicdefbarputs:barendprivatedefzimputs:zimendprotecteddefdibputs:dibendendA的实例a=A.new测试a.foorescueputs:faila.barrescueputs:faila.zimrescueputs:faila.dibrescueputs:faila.gazrescueputs:fail测试输出failbarfailfailfail.发送测试[:foo,:bar,:zim,:dib,:gaz].each{|m|a.send(m)resc

  2. ruby - 如何将脚本文件的末尾读取为数据文件(Perl 或任何其他语言) - 2

    我正在寻找执行以下操作的正确语法(在Perl、Shell或Ruby中):#variabletoaccessthedatalinesappendedasafileEND_OF_SCRIPT_MARKERrawdatastartshereanditcontinues. 最佳答案 Perl用__DATA__做这个:#!/usr/bin/perlusestrict;usewarnings;while(){print;}__DATA__Texttoprintgoeshere 关于ruby-如何将脚

  3. ruby - 主要 :Object when running build from sublime 的未定义方法 `require_relative' - 2

    我已经从我的命令行中获得了一切,所以我可以运行rubymyfile并且它可以正常工作。但是当我尝试从sublime中运行它时,我得到了undefinedmethod`require_relative'formain:Object有人知道我的sublime设置中缺少什么吗?我正在使用OSX并安装了rvm。 最佳答案 或者,您可以只使用“require”,它应该可以正常工作。我认为“require_relative”仅适用于ruby​​1.9+ 关于ruby-主要:Objectwhenrun

  4. ruby-on-rails - 如果 Object::try 被发送到一个 nil 对象,为什么它会起作用? - 2

    如果您尝试在Ruby中的nil对象上调用方法,则会出现NoMethodError异常并显示消息:"undefinedmethod‘...’fornil:NilClass"然而,有一个tryRails中的方法,如果它被发送到一个nil对象,它只返回nil:require'rubygems'require'active_support/all'nil.try(:nonexisting_method)#noNoMethodErrorexceptionanymore那么try如何在内部工作以防止该异常? 最佳答案 像Ruby中的所有其他对象

  5. ruby - 如何在 Lion 上安装 Xcode 4.6,需要用 RVM 升级 ruby - 2

    我实际上是在尝试使用RVM在我的OSX10.7.5上更新ruby,并在输入以下命令后:rvminstallruby我得到了以下回复:Searchingforbinaryrubies,thismighttakesometime.Checkingrequirementsforosx.Installingrequirementsforosx.Updatingsystem.......Errorrunning'requirements_osx_brew_update_systemruby-2.0.0-p247',pleaseread/Users/username/.rvm/log/138121

  6. java - 等价于 Java 中的 Ruby Hash - 2

    我真的很习惯使用Ruby编写以下代码:my_hash={}my_hash['test']=1Java中对应的数据结构是什么? 最佳答案 HashMapmap=newHashMap();map.put("test",1);我假设? 关于java-等价于Java中的RubyHash,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/22737685/

  7. ruby-on-rails - link_to 不显示任何 rails - 2

    我试图在索引页中创建一个超链接,但它没有显示,也没有给出任何错误。这是我的index.html.erb代码。ListingarticlesTitleTextssss我检查了我的路线,我认为它们也没有问题。PrefixVerbURIPatternController#Actionwelcome_indexGET/welcome/index(.:format)welcome#indexarticlesGET/articles(.:format)articles#indexPOST/articles(.:format)articles#createnew_articleGET/article

  8. ruby-on-rails - RSpec:避免使用允许接收的任何实例 - 2

    我正在处理旧代码的一部分。beforedoallow_any_instance_of(SportRateManager).toreceive(:create).and_return(true)endRubocop错误如下:Avoidstubbingusing'allow_any_instance_of'我读到了RuboCop::RSpec:AnyInstance我试着像下面那样改变它。由此beforedoallow_any_instance_of(SportRateManager).toreceive(:create).and_return(true)end对此:let(:sport_

  9. objective-c - 在设置 Cocoa Pods 和安装 Ruby 更新时出错 - 2

    我正在尝试为我的iOS应用程序设置cocoapods但是当我执行命令时:sudogemupdate--system我收到错误消息:当前已安装最新版本。中止。当我进入cocoapods的下一步时:sudogeminstallcocoapods我在MacOS10.8.5上遇到错误:ERROR:Errorinstallingcocoapods:cocoapods-trunkrequiresRubyversion>=2.0.0.我在MacOS10.9.4上尝试了同样的操作,但出现错误:ERROR:Couldnotfindavalidgem'cocoapods'(>=0),hereiswhy:U

  10. ruby - 你会如何在 Ruby 中表达成语 "with this object, if it exists, do this"? - 2

    在Ruby(尤其是Rails)中,您经常需要检查某物是否存在,然后对其执行操作,例如:if@objects.any?puts"Wehavetheseobjects:"@objects.each{|o|puts"hello:#{o}"end这是最短的,一切都很好,但是如果你有@objects.some_association.something.hit_database.process而不是@objects呢?我将不得不在if表达式中重复两次,如果我不知道实现细节并且方法调用很昂贵怎么办?显而易见的选择是创建一个变量,然后测试它,然后处理它,但是你必须想出一个变量名(呃),它也会在内存中

随机推荐