Xcode 6在Swift中不是自动完成的

时间:2014-08-05 07:08:57

标签: ios xcode autocomplete swift

我正在尝试导入各种我无法记住其确切名称的库。不幸的是, Xcode 6(使用swift)不会像使用objective-c在 Xcode 5中那样自动完成它们。

例如:

ALAssetsLibrary
MPMediaPlayer

我被迫向谷歌提供确切的框架名称,然后返回并复制粘贴。

一般来说,自动完成功能非常糟糕。我在Xcode 6中做错了吗?

我应该在设置中设置任何标志才能使其正常工作吗?

10 个答案:

答案 0 :(得分:143)

Apple dev论坛的这个修复程序适用于我。自从测试版5以来我一直有性能/自动完成问题,现在我的旧版MBP上的xcode 6.1 / Yosemite正在完美运行。

  1. 退出Xcode。
  2. 重新启动计算机(这是为了清除任何内存中的缓存)。
  3. 删除DerivedData文件夹的内容 (〜/库/开发商/ Xcode中/ DerivedData)
  4. [这是关键动作:]删除〜/ Library / Caches / com.apple.dt.Xcode。
  5. 现在再次启动Xcode ......

答案 1 :(得分:67)

这与上面正确选择的答案相同,但稍微容易一些。

我必须多次这样做,在我的测试中,您可以跳过重新启动Mac。

1)关闭Xcode

2)终端 - > rm -rf~ / Library / Developer / Xcode / DerivedData / *

3)终端 - > rm -rf~ / Library / Caches / com.apple.dt.Xcode

重新启动Xcode,它应该恢复正常。

答案 2 :(得分:17)

我发现如果我的部署目标是8.1,则自动完成始终有效。但如果不是,那就不可靠了。

enter image description here

答案 3 :(得分:5)

提高xCode速度和重复使用技巧的最简单方法是创建别名并在每次需要时调用它:

1.开放终端:
2.输入您的终端(或复制并粘贴):
alias xcodeclean="rm -frd ~/Library/Developer/Xcode/DerivedData/* && rm -frd ~/Library/Caches/com.apple.dt.Xcode/*" 3.最后一步是键入xcodeclean(请记住:下次要清理xCode时只需调用xcodeclean

答案 4 :(得分:3)

我已经发生了相当多的事情,是的确保您使用最新的测试版本确实有帮助。不幸的是,您每次都必须通过开发人员门户网站下载最新版本。

我还注意到,当swift编译器正在努力编译某些东西时,自动完成就会消失,即使它没有错误,如果你注释掉或删除正确的代码行,该功能会按预期返回。绝对是由beta版软件产生的。

上周我因为快速编译器与sqrt()函数不匹配而撞到了墙上。希望这些问题在完全发布之前得到解决。

抱歉,还没有真正的'修复'!

答案 5 :(得分:2)

有时它也不会自动完成。我认为这是因为Xcode 6仍处于测试阶段。 顺便说一下,你有没有更新Xcode 6 beta?最新的是目前的beta 5。我有一段时间没注意到App Store没有更新Xcode 6测试版,所以我暂时坚持使用测试版1。如果您还没有更新它,那就去做吧。也许这会有助于解决这类错误。

答案 6 :(得分:2)

我发现这非常烦人。发布答案清除派生数据工程防弹,但你应该在清除文件夹之前关闭xcode。我已经制作了小脚本来为我做这项工作。

#!/bin/bash

echo "Start fixing xCode"
echo "Closing xCode"
osascript -e 'tell app "Xcode" to quit'
sleep 2
echo "Clearing DerivedData..."
rm -rf "$HOME/Library/Developer/Xcode/DerivedData"
sleep 2
echo "Launch xCode again"
osascript -e 'tell app "Xcode" to run'
echo "Finish fixing xCode"

现在只要xCode给我一根手指,我就可以运行它。然而,您需要重新编译所有内容的问题仍然存在。

修改

感谢@Nikolay Spassov的评论中的建议,我调整了脚本以捕获您的主目录而不是更改它。因此,下面的步骤不再是必要的。

旧步骤

请注意,您必须更改'/ Users / iphonedev5 ...'部分才能使其在您的系统中运行:)

答案 7 :(得分:1)

我尝试更改字体&颜色为默认值并且有效。我通常在MidNight2上有它。

答案 8 :(得分:0)

我尝试了所有这些,但无济于事 - 没有任何效果。我的情况是我有一个Swift类“A”,在我的分支执行大型合并后,再也看不到其他几个Swift文件(“B” - “F”),这些文件位于我项目中的不同组中。 / p>

有趣的是“A”既属于主要项目Target,也属于UnitTest Target,而“B”,“C”,“D”,“E”和“F”仅属于主项目目标。

  

通过将他们加入UnitTests的会员资格也是全部   突然Xcode现在可以正确地看到这些类 - 也许是同一个目标中的成员?

修正了以下几点: 1)代码完成现在有效。 2)行号旁边的小红色错误标记(“未解析的标识符”错误)也被清除。这最后一个对我来说非常烦人,因为当你CMD-B建立他们清理并且代码编译得很好/运行就好了。但是,进行任何更改(例如,添加一个空格)并且这些更改一直出现(当然,代码完成也会再次停止工作)。

不确定这是否是Swift或Xcode问题,但这就是为我解决的问题。

答案 9 :(得分:0)

如果找不到上述所有文件夹,或者您懒得输入终端,请尝试以下方法:

•在桌面上创建新文件夹

•转到您的应用程序文件夹复制Xcode应用程序

•将应用程序粘贴到您在桌面上创建的文件夹中

*再次返回应用程序文件夹并从应用程序文件夹中删除Xcode。您可以使用cleanMyMac2或任何其他清洁应用程序删除Xcode应用程序,以便所有此类文件(如com.apple.Xcode和其他文件)都可以使用。

•完成后重新启动计算机

•转到您早期创建的文件夹打开Xcode,您将看到条款和条件只是接受并启动您的项目

祝你好运