Xcode 6.1 SourceKit 一直崩溃

2014-10-28 18:51:53 +08:00
 yanke
动辄 SourceKit 崩溃,代码高亮和提醒就没了。。。
会不会是 XVim 的原因,但是禁用XVim之后也是会崩溃。
5361 次点击
所在节点    iDev
15 条回复
yanke
2014-10-28 18:52:41 +08:00
搞的我都开始羡慕Android了,毕竟Java你们懂得。
WildCat
2014-10-28 18:55:03 +08:00
IB加强了很多…还是果家的好
Sunnyyoung
2014-10-28 21:25:03 +08:00
现在我遇到的是@ 没有自动提示了
拖动一个View中的item改变大小布局莫名其妙打乱..好无语
laocp
2014-10-28 21:27:58 +08:00
adow
2014-10-28 21:30:29 +08:00
的确是这样,不是xvim 的问题,崩溃之后代码高亮都没有了,然后一会又好了
yanke
2014-10-28 21:50:38 +08:00
@Sunnyyoung 我用AutoLayout,用来横向撑开ScrollView的View总是会自动跑偏。留下一串警告。
@adow 现在有一个文件,一编辑马上崩。还好不是整个XCode崩溃。
@laocp 没有用Lin,估计就是Xcode自己的问题。
不得不说,Yosemite, iOS 8.X, 以及Xcode 6.X 整体上Bug太多了。
PrideChung
2014-10-28 21:55:22 +08:00
我也一样,装了Yosemite和Xcode 6.1以后就这样。 去 ~/Library/Developer/Xcode/DerivedData 把里面的文件全删掉可以治标,但是过不久又会继续。有点怀疑是Xcode插件造成的,在尝试用二分法定位问题。
PrideChung
2014-10-28 21:56:49 +08:00
另外我没统计过,但印象中用到 Swift 的 extension 和 enum 的时候就会用高几率 SourceKitService Terminated
dorentus
2014-10-28 22:04:44 +08:00
我没装任何 Xcode 插件,然后 Xcode 6 从最早的版本开始,写 Swift 的时候就时常出现 SourceKitService Terminated 的问题(也不算完全无规律,一般都能确定是某几行代码的问题,然后清 DerivedData 也确实是治标而不治本……);随着 Xcode 6 的更新,出现的频率越来越小,但还是会出现。
yanke
2014-10-28 22:05:36 +08:00
@PrideChung 是的
以及 Swift Dictionary 自动转换为 OC 的 NSDictionary 时,有时候会出现一行代码编译耗时十几秒的情况,导致代码高亮失效。
Sunnyyoung
2014-10-28 22:09:21 +08:00
@yanke 是整个View上移么?我的也会这样= =然后就对不准了擦...
yanke
2014-10-28 22:27:12 +08:00
@Sunnyyoung
是这样,IB里面UIScrollView的约束比较奇葩,外部约束用来定位和宽高,内部的约束只能把ScrollView撑开(contentSize),无法影响到ScrollView的frame。

于是我用IB插入一个UIScrollView时候,我会在里面放一个View,设置约束与VC的View等宽,左右与ScrollView贴紧,高度为0,这样会把ScrollView的contentSize宽度上撑到和屏幕等宽。高度用内部的空间撑起来。

然后这个view每次都会自动跑偏,提示我misplaced,留下一串警告。实际上没有问题。

木有遇到其他View跑偏的情况。

感觉现在iOS里面的定位设计得太复杂了,NavBar区分透明和不透明,VC的View定位原点相对屏幕可能是(0,0),(0,20),(0,64),VC还会擅自调整ScrollView的contentInset。加上肾6,肾6+的屏幕尺寸。
目前我写项目Layout已经高度依赖IB了放弃手动了,通过把一些LayoutConstraint Outlet到代码里面来动态调整布局。
不知道有没有更好的解决方案。
Sunnyyoung
2014-10-29 13:24:12 +08:00
@yanke = =请教一个问题,如何使用Storyboard中的UIScrollView随里面的Label行数增多而增加它的contentsize,不用代码...一直没搞懂,Autolayout该如何设置
sherblue
2014-10-29 19:44:59 +08:00
@Sunnyyoung 刚写了一个简单的demo,传到GitHub了。https://github.com/shiablue/AutoLayout
yanke
2014-11-05 18:22:16 +08:00
@Sunnyyoung
首先 UILabel numberOfLines = 0,
然后 宽度方向上有约束,
然后 内容外扩权重(Content Hugging Priority)和内容收缩阻力权重(Content Compression Resistance Priority)在高度上都设置为 Required(1000),这样 UILabel的内容就在可以在高度上撑开外面了。
然后 就是 UILabel 对 superView (UIScrollView) 上下都有约束。这样 UILabel 就可以撑开 UIScrollView 的ContentSize。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/142169

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX