- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我在覆盖 ReSwift Pod 中的函数时遇到问题。我有以下模拟类(class):
import Foundation
import Quick
import Nimble
import RxSwift
@testable import MainProject
@testable import ReSwift
class MockReSwiftStore: ReSwift.Store {
var dispatchDidRun: Bool = false
var subscribeWasTriggered: Bool = false
init() {
let reducer: Reducer = {_, _ in MainState() }
super.init(reducer: reducer, state: nil)
}
required init(
reducer: @escaping (Action, State?) -> State,
state: State?,
middleware: [(@escaping DispatchFunction, @escaping () -> State?) -> (@escaping DispatchFunction) -> DispatchFunction]) {
super.init(reducer: reducer, state: state, middleware: middleware)
}
override func subscribe(
_ subscriber: S,
transform: ((Subscription) -> Subscription)?)
where S: StoreSubscriber,
S.StoreSubscriberStateType == SelectedState {
subscribeWasTriggered = true
}
}
}
并且在重写订阅方法时出现以下错误
然而,当寻找原始功能时,只有一个看起来像这样
open func subscribe(
_ subscriber: S, transform: ((Subscription) -> Subscription)?
) where S.StoreSubscriberStateType == SelectedState
{
// Create a subscription for the new subscriber.
let originalSubscription = Subscription()
// Call the optional transformation closure. This allows callers to modify
// the subscription, e.g. in order to subselect parts of the store's state.
let transformedSubscription = transform?(originalSubscription)
_subscribe(subscriber, originalSubscription: originalSubscription,
transformedSubscription: transformedSubscription)
}
我没有想法所以非常感谢任何帮助谢谢!
câu trả lời hay nhất
这是您的问题:
class Some {
func echo() {
print("A")
}
}
extension Some where T: Equatable {
func echo() {
print("B")
}
}
class AnotherSome: Some {
override func echo() {
print("Doesn't compile")
}
}
问题是:ReSwift 开发人员将 Store.subscribe
行为声明为接口(interface)的一部分和扩展的一部分(我不确定他们为什么选择这样做而不是引入其他对象)。 Swift 无法确定您要覆盖的部分,因此无法编译。据我所知,没有可以让您解决此问题的语言工具。
一个可能的解决方案是将 MockStore
实现为 StoreType
并使用 Store
对象来实现 StoreType
的行为界面。
关于ios - 声明 'subscribe' 不能覆盖多个父类(super class)声明 (ReSwift),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48441920/
Làm thế nào để một thiết bị IO biết rằng giá trị trong bộ nhớ thuộc về nó đã thay đổi trong IO được ánh xạ vào bộ nhớ? ? Ví dụ: giả sử rằng địa chỉ bộ nhớ 0 được dành riêng để giữ màu nền của thiết bị VGA. Khi chúng ta thay đổi giá trị trong bộ nhớ[0], VGA
Tôi hiện đang phát triển một ứng dụng iOS sử dụng sdk Facebook để đăng nhập (thông qua FBLoginView). Mọi thứ đều hoạt động tốt ngoại trừ những người có phiên bản facebook cũ hơn. Khi họ nhấn nút "Đăng nhập bằng Facebook", anh ấy
Giả sử tôi có: đây - là một - ví dụ - với một số - dấu gạch ngangNSRange sẽ chọn phiên bản đầu tiên của "-" bằng cách sử dụng `rangeOfString:@"-", nhưng nếu tôi chỉ muốn phiên bản cuối cùng
Card.io SDK cung cấp các thông tin chi tiết sau: số thẻ, ngày hết hạn, tháng, năm, CVV và mã bưu chính. Làm cách nào tôi có thể lấy tên quốc gia từ SDK này. - (void)userDidProvideCreditCardInfo:(Ô tô
Làm cách nào để ứng dụng iOS tải xuống hình ảnh từ dịch vụ web và cài đặt chúng trên thiết bị iOS của người dùng trong quá trình cài đặt? Có thể được không? Câu trả lời hay nhất Bạn không có quyền kiểm soát việc cài đặt ứng dụng trên thiết bị của người dùng, do đó không thể tải xuống dữ liệu bổ sung trong quá trình cài đặt. Chỉ cần khởi chạy ứng dụng lần đầu tiên sau khi cài đặt
Tôi đã từng phát triển một sản phẩm iOS dành cho doanh nghiệp mà công ty chúng tôi đã bán cho các doanh nghiệp lớn để nhân viên của họ sử dụng. Ứng dụng này có sẵn thông qua AppStore và người dùng doanh nghiệp được cung cấp hồ sơ dành riêng cho công ty (chứa hồ sơ ứng dụng) để cho phép
Tôi đang cố gắng tích hợp SDK Card.io vào ứng dụng iOS của mình. Tôi muốn thực hiện một bản địa hóa đơn giản cho giao diện người dùng CardIO, chẳng hạn như thay đổi tiêu đề nút hủy hoặc văn bản nhắc "Giữ thẻ tín dụng của bạn ở đây". Tôi tìm thấy cái này trên github
Tôi đang sử dụng các lớp CardIOView và CardIOViewDelegate và không có BOOL nào có thể được đặt thành CÓ để quét collCardholderName. Tôi có thể thấy nó trong CardIOP
Tôi có một ứng dụng voip được tích hợp với bộ công cụ gọi điện. Mỗi lần tôi gọi từ ứng dụng voip của mình, một bản ghi cuộc gọi mới gần đây sẽ được tạo trong ứng dụng điện thoại gốc. Tôi cũng có danh bạ tùy chỉnh trong ứng dụng voip (điện thoại nên
Làm cách nào để ứng dụng iOS biết đã có bàn phím trên màn hình khi ứng dụng được mở? Sau khi ứng dụng đang chạy, nó có thể nhận được thông báo hiển thị/ẩn bàn phím. Tuy nhiên, nếu ứng dụng được mở dưới dạng ứng dụng phụ ở chế độ chia đôi màn hình và ứng dụng chính đã hiển thị bàn phím thì ứng dụng phụ sẽ không hiển thị
Tôi gặp lỗi sau trong trình mô phỏng: ImageIO: CGImageReadSessionGetCachedImageBlockData *** CGImageReadSessionGetCachedIm
Như được trình bày trong tài liệu của Apple, việc giao tiếp với các phụ kiện được chứng nhận (được Apple chứng nhận) có thể được thực hiện thông qua EAAccessory Framework. Nhưng tôi hơi bối rối vì một số bài đăng cho tôi biết nó cũng hoạt động qua CoreBluetoo
Mặc dù các trình gỡ lỗi ngày nay rất tốt nhưng đôi khi cách tốt nhất để tìm hiểu những gì đang diễn ra trong ứng dụng của bạn vẫn là NSLog cũ. Việc này thật dễ dàng khi bạn kết nối với máy tính; Xcode sẽ giúp bật lên bảng Log Viewer và bạn đã sẵn sàng. khi bạn không ở nơi làm việc
Trong ứng dụng iOS của tôi, tôi xác định một số điểm ưa thích. Một số trong số chúng có tên là đèn hiệu Kontakt.io, được liên kết với một PoI cụ thể (ý tôi là tên thường được gắn vào nhãn đèn hiệu). Bây giờ tôi muốn khám phá các đèn hiệu gần đó,
Tôi đang tạo plugin trigger.io để nhận lời nhắc cảnh báo. Cố gắng trả lại dữ liệu từ lời nhắc cảnh báo. Đây là mã của tôi: // Nhắc + (void)show_Prompt:(ForgeTask*)task{
Xin chào, tôi mới làm quen với Apple iOS. Mình đã đọc và tìm kiếm rất nhiều bài viết về thông báo đẩy nhưng không tìm thấy thông tin nào về các bản cập nhật mới của APNS từ io4 lên ios 6. Ai có thể cung cấp cho tôi APNS cách thực hiện trong ios không
Chiều cao của UITabBar dường như đã thay đổi giữa iOS 7 và 8/9/10/11. Tôi đăng câu hỏi này để giúp người khác dễ dàng tìm thấy câu trả lời. Sau đó: iOS 8/9/10/11 trên iPhone và iPad
Tôi nghĩ tôi có thể sử dụng các Bảng phân cảnh khác nhau cho các phiên bản iOS khác nhau. Do có sự khác biệt về UI nên mình sẽ tạo Storyboard tiếp theo: Main_iPhone.storyboard Main_iPad.st
Tôi đang viết nội dung nào đó trong đó tôi sẽ sử dụng một phần bản âm thanh từ thư viện iTunes của thiết bị để phủ lên sự kết hợp của 2 video, ví dụ: AVMutableComposition* mixComposition = [[AVMutableC
Tôi đã tạo một chương trình iOS đơn giản có khả năng biên dịch mượt mà và chạy tốt trên trình mô phỏng iPad. Chương trình tương tự không biên dịch được khi tôi yêu cầu XCode 4 sử dụng thiết bị iPad được kết nối của mình. Có vẻ như vấn đề xảy ra khi tôi cố gắng sử dụng iPad kèm theo
Tôi là một lập trình viên xuất sắc, rất giỏi!