Значение типа «UIButton» не имеет элемента «реактивный»

Я хочу использовать ReactiveSwift.

  1. Подфайл

pod 'ReactiveCocoa', '~> 6.0'

  1. $ pod install

ViewController.swift:

import UIKit
import ReactiveSwift

class ViewController: UIViewController {
    @IBOutlet fileprivate weak var button: UIButton!

    override func viewDidLoad() {
        button.reactive.xxx { ... }
    }
}

У меня есть только эта ошибка, поэтому я могу запустить, когда закомментирую button.reactive.xxx { ... }.

Спасибо.


person shiba1014    schedule 30.08.2017    source источник
comment
Как работает реактив? Есть ли у него расширение для UIButton, добавляющее элемент reactive, или предполагается использовать некий пользовательский подкласс UIButton (вместо самого UIButton), который имеет это свойство?   -  person Nicolas Miari    schedule 30.08.2017
comment
Кстати, часть с какао-бобами вроде работает, иначе бы комплер жаловался на строку import ReactiveSwift.   -  person Nicolas Miari    schedule 30.08.2017
comment
Я решил эту проблему, когда я изменил import ReactiveSwift на import ReactiveCocoa! Но пример кода, кажется, работает с import ReactiveSwift. Что-то не так в моем проекте?   -  person shiba1014    schedule 30.08.2017
comment
Итак, я предполагаю, что есть и extension на UIButton определено в ReactiveCocoa (не ReactiveSwift)   -  person Nicolas Miari    schedule 30.08.2017
comment
Понятно. Спасибо!   -  person shiba1014    schedule 30.08.2017


Ответы (1)


Это точно так, как предложил @NicolasMiari - Reactive Cocoa разделен на несколько частей (во всяком случае, начиная с версии 5.0).

Reactive Swift содержит реализацию основных примитивов (Signal, SignalProducer, Property, Action) и операторов. Примечательно, что это не зависит от платформы.

Reactive Cocoa создан на основе Reactive Swift и добавляет UIKit и AppKit специальные расширения для iOS/macOS через .reactive собственность.

person MeXx    schedule 07.09.2017