Apple提到它们可以在一个应用程序中共存,但这是否意味着可以在技术上重用Objective-C中的旧类,同时在Swift中构建新类?
Objective-C是一种独立于平台的语言,而Swift则依赖于平台.因此,在Swift中编写非平台相关代码(业务逻辑库)并不明智.但是,在其中编写与平台相关的代码(例如,与接口相关)将非常好.不是说这是一个好主意,但它肯定是一种兴趣.
我目前在Swift编码,我有一个错误:
没有这样的模块社交
但我不明白,因为模块在我的项目中,在"链接框架和库"和"嵌入式二进制文件"中声明.
框架在Objective-C中,所以我为它编写了一个Bridge Header.
请问,我如何让Xcode识别框架?




我遇到了一个全新项目的问题.RestKit和Facebook SDK都会出现此问题.奇怪的是SwiftyJSON工作得很好.我创建了一个全新的swift项目和一个Podfile:
source 'https://github.com/CocoaPods/Specs.git'
use_frameworks!
target 'test-fb-swift4' do
pod "FBSDKCoreKit"
pod 'SwiftyJSON', '~> 2.1'
pod 'RestKit', :inhibit_warnings => true
end
target 'test-fb-swift4Tests' do
end
Run Code Online (Sandbox Code Playgroud)
创建该文件后,我运行pod install并使用test-fb-swift4.xcworkspace文件重新打开xcode.
现在我的控制器里面放了一个导入RestKit,我得到错误没有这样的模块'RestKit'.我已经尝试了许多不同的方法来格式化Podfile,甚至是非常简单的版本,例如:
source 'https://github.com/CocoaPods/Specs.git'
pod 'RestKit'
Run Code Online (Sandbox Code Playgroud)
我尝试添加和删除use_frameworks,有和没有目标.有和没有:inhibit_warnings.
我正在运行CocoaPods 0.36.4并尝试了最新的rc构建,同样的交易.另一个项目的Objective-C版本运行正常.这是我使用Swift的第一个项目,我坚持这个问题.
我想问一下然后回答这个问题.
我想更新我的应用程序内置的CocoaPods,所以我pod install从终端运行.
那是我收到这个错误的时候:
[!] The `APP_NAME [Debug]` target overrides the `FRAMEWORK_SEARCH_PATHS` build setting defined in `Pods/Target Support Files/Pods/Pods.debug.xcconfig'. This can lead to problems with the CocoaPods installation
- Use the `$(inherited)` flag, or
- Remove the build settings from the target.
Run Code Online (Sandbox Code Playgroud)
你如何使用$(继承)标志?
迁移到Swift 3.0后,我试图将SwiftyJSON导入到我的项目中.但是,当我导入框架'import SwiftyJSON'时,我得到一个No Such Module错误.
如果我删除import语句,它将无法识别其类.
有关为什么XCode可能没有读取我导入的框架的任何建议?
查看附件截图:
我正在使用Typhoon库来进行依赖注入框架.我CocoaPod用来安装这个库.这是我的pod文件:
target "typhoon-swift-demo" do
pod 'Typhoon'
end
target "typhoon-swift-demoTests" do
end
Run Code Online (Sandbox Code Playgroud)
我已成功安装,但是当我打开工作区项目文件时.我键入这些代码行作为Typhoon示例代码:
public class ApplicationAssembly: TyphoonAssembly {
}
Run Code Online (Sandbox Code Playgroud)
我遇到错误,我的应用程序无法识别TyphoonAssembly我试图使用一些行,如:
import Typhoon // not recogize typhoon
import TyphoonAssembly // not regconize
Run Code Online (Sandbox Code Playgroud)
请告诉我如何解决这个问题.在使用库之前我应该添加什么.谢谢 :)
我正在尝试快速运行声纳。我已经有了带有该插件的sonarQube,并且可以使用此URL http:// localhost:9000在本地访问它。我已经安装了所有必备组件,您可以在这里找到它们:
https://github.com/Backelite/sonar-swift
但是当我启动run-sonar-swift.sh时,我不知道这是什么错误。
如果有人能给我带来曙光,我将不胜感激。
这是我在终端命令./run-sonar-swift.sh -v中运行时的日志:
MacBook-Air:streamus-phoenix-ios oboujaouane $ ./run-sonar-swift.sh -v
运行run-sonar-swift.sh ...
项目数为[1]
Xcode项目文件是:Streamus.xcodeproj
Xcode工作区文件是:Streamus.xcworkspace
Xcode的应用方案是:Streamus Alpha
目的地模拟器是:platform = iOS Simulator,名称= iPhone 6,OS = 11.3
覆盖范围排除的路径为:。测试。
创建目录声纳报告/
运行测试+ xcodebuild干净的构建测试-workspace Streamus.xcworkspace -scheme'Streamus Alpha'-配置调试-enableCodeCoverage是-destination'platform = iOS Simulator,name = iPhone 6,OS = 11.3'-destination-timeout 60
2018-05-12 10:34:14.031 xcodebuild [32149:775290] IDETestOperationsObserverDebug:将测试会话的诊断日志写入到/var/folders/9v/vdbbf4j96hxgcxmtpntznytr0000gn/T/com.apple.dt.XCTest/IDETestRunSession-9A7EF764-6391 -4C7D-9F34-066A9DFEC5E9 / StreamusUITests-87E838E0-4F8F-4C19-B2AC-C2C0A274E8EC / Session-StreamusUITests-2018-05-12_103414-jhm3wz.log
2018-05-12 10:34:14.032 xcodebuild [32149:769805] [MT] IDETestOperationsObserverDebug:(98FB295E-FE60-46AA-8589-015B0DD2E617)开始测试会话StreamusUITests-98FB295E-FE60-46AA-8589-015B0DD2E617在2018-05在目标{SimDevice:iPhone 6(672DE879-E48B-45DA-BFD9-D0412F51A706,iOS 11.3,引导)上使用Xcode 9E145的-12 10:34:14.031}(11.3(15E217))
2018-05-12 10:34:14.061 xcodebuild [32149:769805] [MT] IDETestOperationsObserverDebug:(458F86F6-1492-40F1-9F72-A88FC23BD985)开始测试会话StreamusTests-458F86F6-1492-40F1-9F72-A88FC23BD985
2018-05-12 10:34:14.061,目标上具有Xcode 9E145 {SimDevice:iPhone 6(672DE879-E48B-45DA-BFD9-D0412F51A706,iOS 11.3,已启动)}(11.3(15E217)) …
swift ×6
cocoapods ×3
ios ×3
objective-c ×2
xcode ×2
restkit ×1
sonar-runner ×1
sonarlint ×1
sonarqube ×1
swift3 ×1
swifty-json ×1
typhoon ×1