7

Tôi đang cố gắng chuyển một ứng dụng objc sử dụng KVOController của Facebook, sang Swift. Tôi đã được khuyến khích để xem RC3 như một cách tiếp cận thay thế và nhanh hơn. Tôi đã đọc một số blog và tôi được khuyến khích dùng thử. Nhưng nhiều tài liệu và blog dường như tập trung vào ổ cắm và bộ hẹn giờ làm ví dụ. Vì vậy, tôi có hai câu hỏi đơn giản ngay bây giờ:Tôi có thể thay thế công cụ KVO bằng RC3 không?

1) Cho một đoạn objc như:

[self.KVOController observe: self.site keyPath: @"programs" options: NSKeyValueObservingOptionInitial block:^(id observer, id object, NSDictionary *change) { 
    [self.tableView reloadData]; 
}]; 

cách đơn giản để viết lại này với các API RC3 là gì? Và tương đương RC3 cho self.KVOController unobserve: self.site điều gì xảy ra khi chế độ xem đó được tải xuống?

2) Bạn nên sử dụng Carthage để lấy mã RC3. Tôi có thể kết hợp an toàn Cartfile một cách an toàn với dự án đang sử dụng vỏ cacao đã có cho AlamofireSwiftyJSON không?

Trả lời

2

Đối với câu hỏi đầu tiên, tôi chỉ có thể hướng dẫn bạn đi đúng hướng. Hãy xem sự thay đổi log to 3.0 mô tả sự dịch chuyển khỏi RACObserve() thành PropertyTypes. Đó là một chút rõ ràng hơn và nó cung cấp an toàn loại. Here là nguồn, mà tôi nghĩ là đặt cược tốt nhất của bạn để tìm ra cách thực hiện nó. Bạn cũng có thể xem xét các trường hợp thử nghiệm của họ để xem họ có xây dựng bất kỳ thử nghiệm nào cho giao thức PropertyType và bắt chước cách họ đã thiết lập nó hay không.

Và có, bạn sẽ không gặp khó khăn khi trộn Carthage và CocoaPod trong một dự án, vì Carthage được thiết kế để có ít xâm nhập nhất. Miễn là bạn làm theo các hướng dẫn trên trang web của họ, bạn sẽ ổn thôi.

+1

Các liên kết được chết. – Bastian

+0

@Bastian Sẽ sớm cập nhật. – hhanesand

8

Disclaimer :) Tôi cũng mới đến khái niệm toàn bộ ReactiveCocoa và đặc biệt là để RAC 3. Tôi đang chơi đùa với các khuôn khổ mới để tìm hiểu, vì vậy giải pháp của tôi có thể không sử dụng thiết kế của API . Tôi rất vui khi nhận được phản hồi từ những người khác và tìm hiểu đúng cách.

Đây là những gì tôi có thể đưa ra cho câu hỏi đầu tiên của bạn: Bạn có thể xác định thuộc tính bạn muốn quan sát dưới dạng MutableProperty. Dưới đây là ví dụ cơ bản nhất với thuộc tính String. Giả sử bạn có một mô hình khung nhìn, nó có một thuộc tính String và bạn muốn quan sát nó trong đối tượng điều khiển khung nhìn của bạn.

ViewModel.swift

class ViewModel { 
    var testProp = MutableProperty<String>("") 
} 

ViewController.swift

class ViewController: UIViewController { 
    private let viewModel = ViewModel() 

    override func viewDidLoad() { 
     super.viewDidLoad() 

     let testPropObserver = viewModel.testProp.producer 
      testPropObserver.start(next: {value in 
       println("new value \(value)") 
      }) 

     viewModel.testProp.value = "you should see this in your log" 
    } 
} 
+0

Cảm ơn bạn đã thực hiện công việc! – hhanesand

Các vấn đề liên quan