aes*_*eis 37 xcode ios swift xcode7.3
我有XCode的7.3(但是,因为我安装了XCode 7.2这个问题一直存在)和SWIFT代码一个非常令人沮丧的问题,我希望其他人遇到了这个问题,并知道如何解决它.语法高亮和代码完成在Objective-C文件中完美地工作,并且在Swift代码中调用其他Swift对象时也可以正常工作.但是,Swift代码中提到的任何Objective-C对象或方法都没有语法高亮,并且XCode不会完成任何Objective-C声明的方法或属性.一切都编译好,运行得很好.
我还应该补充一点,我也尝试过彻底清理XCode.我删除了所有派生数据,删除了所有XCode缓存,并删除了我的XCode首选项文件(除了在重新安装之前显然删除了XCode.app存档).
这使得在Swift中开发变得非常困难.我不想这样做,但如果我找不到解决方法,我将被迫回到使用Objective-C.
Gal*_*vin 21
我也有同样的问题.但终于解决了它.我做了两个改变,不知道哪个是关键点,但你可以尝试所有.
在与项目的Derived Data相同的文件夹中是模块缓存.当代码完成停止工作时,删除它修复它.
关闭Xcode并删除 〜/ Library/Developer/Xcode/DerivedData/ModuleCache目录.
转到目标的" 构建设置",然后搜索" 启用模块"
如果是,则将其更改为否,您可能会遇到一些构建错误,只需将其更改回" 是".
完成上述两个步骤后,您应该清理(Shift + Command + K)您的项目.
现在您可以解决问题.
所以似乎问题出在CocoaPods上.我使用Cocoapods作为静态库而不是框架.切换到框架(use_frameworks!
在我的Podfile中使用)并将库导入Swift已解决了我的所有问题.我猜这些第三方库标题对于XCode来说太过分了.无论哪种方式,问题现在都已解决.我希望这可以帮助将来的某个人.
这可能不再是必要了,但我仍想发布这个:
在本文发表时,最新版本的cocoapods(1.0.0.beta.8)要求您为每个Xcode目标定义pod.
在我的例子中,我有一个针对项目目标和测试目标的类编译.由于懒惰,我只向主要目标添加了一个吊舱.
现在在类的代码中工作A
我添加了pod框架import NAME
并尝试使用框架的类.Xcode不会突出显示我使用新类的特定代码,但编译和运行工作正常.在完成对话框中,变量的类型是<<error type>>
解决此问题的方法:在Podfile中将新添加的pod添加到所有目标,该类A
是其成员.
现在Xcode为所有目标找到了必要的框架,并且代码突出显示再次起作用.
编辑1:
一种可能的解决方案是定义共享pod的列表,如我的示例所示:
platform :ios, '8.4'
use_frameworks!
inhibit_all_warnings!
def all_pods
pod 'MPMessagePack'
pod 'SwiftyDispatch'
pod 'BFKit'
pod 'Timepiece'
pod 'Alamofire'
pod 'AlamofireSwiftyJSON'
end
def testing_pods
pod 'Quick'
pod 'Nimble'
end
target 'App' do
all_pods
end
target 'AppLogicTests' do
all_pods
testing_pods
end
target 'AppUITests' do
pod 'RxTest'
all_pods
testing_pods
end
post_install do |installer|
installer.pods_project.targets.each do |target|
puts target.name
end
end
Run Code Online (Sandbox Code Playgroud)
这会将所有pod添加到所有目标,并将所有测试pod添加到目标.在这些旁边,我向AppUITests添加了"RxTest".
(选择的豆荚是我项目的例子,没有广告意图:-))
归档时间: |
|
查看次数: |
9913 次 |
最近记录: |