在 RxSwift 中快速使用未解析的标识符 `create`

标签 swift macos rx-swift

我开始学习 Swift,并且正在实现一个 Observable(使用 RxSwift)来简化 OSX 应用程序中通过 AlamoFire 的网络调用。

进口:

import RxSwift
import RxCocoa
import Alamofire

方法:

下面的创建标识符正在报告: 使用未解析的标识符创建

func getAPI(body: String) -> Observable<AnyObject?> {
    return create { observer in
        let request = AlamoFireXMLPostRequest(body)
            .responseData(completionHandler: { request, response, data, error in
                if ((error) != nil) {
                    observer.on(.Error(error!))
                } else {
                    observer.on(.Next(getXMLfromFreshbooksResponse(response)))
                    observer.on(.Completed)
                }
            })
        return AnonymousDisposable {
            request.cancel()
        }
    }
}

CocoaPods:

# Uncomment this line to define a global platform for your project
# platform :ios, '9.0'
# Needed by SWXMLHash
source 'https://github.com/CocoaPods/Specs.git'
platform :osx, '10.10'

target 'Tractor Beam' do
  # Comment this line if you're not using Swift and don't want to use dynamic frameworks
  use_frameworks!

  # Pods for Tractor Beam
  pod 'Alamofire', '~> 3.4'

  # Convert HTTP AF Responses to XML    
  pod 'AlamofireXmlToObjects'
  pod 'SWXMLHash', '~> 2.5.0'

  # Rx
  pod 'RxSwift', '~> 2.6.0'
  pod 'RxCocoa', '~> 2.6.0'

  target 'Tractor BeamTests' do
    inherit! :search_paths
    # Pods for testing
  end

  target 'Tractor BeamUITests' do
    inherit! :search_paths
    # Pods for testing
  end

end

#post_install do |installer|
#    installer.pods_project.targets.each do |target|
#        target.build_configurations.each do |config|
#            config.build_settings['SWIFT_VERSION'] = '3.0'
#            config.build_settings['MACOSX_DEPLOYMENT_TARGET'] = '10.10'
#        end
#    end
#end

最佳答案

createObservable 类的静态方法。因此,您需要通过以下方式调用它: Observable.create...

此外,您应该避免无端使用 ! 运算符。例如:

if ((error) != nil) {
    observer.on(.Error(error!))
}

应该写成:

if let error = error {
    observe.on(.Error(error))
}

关于在 RxSwift 中快速使用未解析的标识符 `create`,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39335889/

相关文章:

c++ - 使用 OS X 核心音频播放/输出体验音频丢失

swift - 如何通过物化处理永无止境的链上的错误?

ios - 观察 RxSwift 中 viewModel 中的类变量的任何变化

ios - 有没有办法通过“正常”触摸在 SwiftUI 中打开上下文菜单?

ios - 只有一个(自定义)注释从一组其他注释中旋转

mysql - 无法在终端中运行命令?

macos - 我可以使用 Delphi XE2 (v16) 轻松编译适用于 Mac OS X 的现有 Delphi 应用程序吗?

Swift 按值对字典进行排序

ios - tableView Firebase Swift 中的异步数据

ios - 使用 RxSwift 同步异步网络调用