小编Mar*_*ina的帖子

iOS 13 Killing应用程序,因为它在收到PushKit VoIP回调后从未向系统发布来电

升级到iOS Beta 13之后,我注意到了一件不愉快的事情:我的应用有时会因传入的VoIP推送而崩溃。

在崩溃报告中,我看到以下内容:

iOS 13 Killing app because it never posted an incoming call to the system after receiving a PushKit VoIP callback 

Fatal Exception: NSInternalInconsistencyException
0  CoreFoundation                 0x1af21b9f0 __exceptionPreprocess
1  libobjc.A.dylib                0x1af7284fc objc_exception_throw
2  CoreFoundation                 0x1af11efec + 
 [_CFXNotificationTokenRegistration keyCallbacks]
3  Foundation                     0x1aeda1330 -[NSAssertionHandler 
 handleFailureInMethod:object:file:lineNumber:description:]
4  PushKit                        0x19caa6b54 -[PKPushRegistry 
 _terminateAppIfThereAreUnhandledVoIPPushes]
5  libdispatch.dylib              0x1afa441ec _dispatch_client_callout
6  libdispatch.dylib              0x1af9f6c6c 
_dispatch_lane_barrier_sync_invoke_and_complete
7  PushKit                        0x19caa5b74 __73-[PKPushRegistry 
 voipPayloadReceived:mustPostCall:withCompletionHandler:]_block_invoke
8  libdispatch.dylib              0x1afa43678 
 _dispatch_call_block_and_release
9  libdispatch.dylib              0x1afa441ec 
  _dispatch_client_callout

10 libdispatch.dylib              0x1af9f61f8 
_dispatch_main_queue_callback_4CF$VARIANT$mp
11 CoreFoundation                 0x1af1992a0 
CFRUNLOOP_IS_SERVICING_THE_MAIN_DISPATCH_QUEUE …
Run Code Online (Sandbox Code Playgroud)

voip apple-push-notifications pushkit callkit ios13

11
推荐指数
1
解决办法
5275
查看次数

如何将rx_tap(UIButton)绑定到ViewModel?

我有2个UITextField属性和1个UIButton的授权控制器.我想将View绑定到ViewModel,但不知道如何操作.这是我的AuthorizatioVC.swift:

class AuthorizationViewController: UIViewController {

let disposeBag = DisposeBag()

@IBOutlet weak var passwordTxtField: UITextField!
@IBOutlet weak var loginTxtField: UITextField!

@IBOutlet weak var button: UIButton!

override func viewDidLoad() {
    super.viewDidLoad()

    addBindsToViewModel()

}

func addBindsToViewModel(){
    let authModel = AuthorizationViewModel(authClient: AuthClient())

    authModel.login.asObservable().bindTo(passwordTxtField.rx_text).addDisposableTo(self.disposeBag)
    authModel.password.asObservable().bindTo(loginTxtField.rx_text).addDisposableTo(self.disposeBag)
  //HOW TO BIND button.rx_tap here?

}

}
Run Code Online (Sandbox Code Playgroud)

这是我的AuthorizationViewModel.swift:

final class AuthorizationViewModel{


private let disposeBag = DisposeBag()

//input
//HOW TO DEFINE THE PROPERTY WHICH WILL BE BINDED TO RX_TAP FROM THE BUTTON IN VIEW???
let authEvent = ???
let login = …
Run Code Online (Sandbox Code Playgroud)

ios swift rx-swift

9
推荐指数
2
解决办法
1万
查看次数

如何在RxSwift中取消订阅Observable?

我想取消订阅RxSwift中的Observable.为了做到这一点,我曾经将Disposable设置为nil.但在我看来,在更新到RxSwift 3.0.0-beta.2后,这个技巧不起作用,我无法取消订阅Observable:

//This is what I used to do when I wanted to unsubscribe
var cancellableDisposeBag: DisposeBag?

func setDisposable(){
    cancellableDisposeBag = DisposeBag()
}

func cancelDisposable(){
    cancellableDisposeBag = nil
}
Run Code Online (Sandbox Code Playgroud)

那么可能有人可以帮我如何正确取消订阅Observable?

ios swift rx-swift

9
推荐指数
2
解决办法
1万
查看次数

如何使用RxSwift处理项目中的Disposables是否正确?

当我开始使用RxSwift时,我曾经BaseViewController使用RxSwift在我所有的控制器上创建和扩展它.BaseViewController.swift的代码:

class BaseViewController: UIViewController {
var mSubscriptions: CompositeDisposable?

func addSubscription(subscription: Disposable){
    if(mSubscriptions == nil){
        mSubscriptions = CompositeDisposable()
    }
    if let mSub = mSubscriptions{
        mSub.addDisposable(subscription)
    }
}

func unsubscribeAll(){
    if let mSub = mSubscriptions{
        mSub.dispose()
        mSubscriptions = nil
    }

}

override func viewWillDisappear(animated: Bool) {
    super.viewWillDisappear(animated)
    unsubscribeAll()
}

deinit{
    unsubscribeAll()
}
}
Run Code Online (Sandbox Code Playgroud)

我在我的子控制器中使用addSubscription(:_)方法.例如,一段代码来自:

class TasksViewController: BaseViewController{
   overrided func viewWillAppear(){
       //...
     var subscribe = dataLoader.load(requestNetwork, dataManager: taskDataManager)
    .observeOn(ConcurrentDispatchQueueScheduler(queue: queue))
    .subscribe({ (event) -> Void in
        //...

    }) …
Run Code Online (Sandbox Code Playgroud)

ios swift rx-swift

5
推荐指数
1
解决办法
2024
查看次数

RxSwift中RxJava onErrorResumeNext运算符的模拟是什么?

如果在RxSwift中遇到错误,我需要发出一系列项目.在JAVA中,可以使用"onErrorResumeNext"运算符完成.但是我在Swift中找不到相同的运算符或它的替代品.

ios swift rx-swift

3
推荐指数
1
解决办法
1003
查看次数

如何用RxSwift观察Bool属性?

我的VC.swift中有两个Bool属性:

var isRecording = false
var isPlaying = false
Run Code Online (Sandbox Code Playgroud)

在viewDidLoad()方法中我有这样的代码:

let observable = Observable.combineLatest(self.rx_observe(Bool.self, "isRecording"), self.rx_observe(Bool.self, "isPlaying")) { (val1, val2) -> Void in
        if(val1 == false && val2 == false){
            self.recordButton.enabled = true
            self.playButton.enabled = true
            self.recordButton.setImage(UIImage(named: "record"), forState: UIControlState.Normal)
            self.playButton.setImage(UIImage(named: "play"), forState: UIControlState.Normal)
        } else if(val1 == true && val2 == false){
            self.recordButton.enabled = true
            self.recordButton.setImage(UIImage(named: "stop"), forState: UIControlState.Normal)
            self.playButton.enabled = false
        } else if(val1 == false && val2 == true){
            self.recordButton.enabled = false
            self.playButton.enabled = true
            self.playButton.setImage(UIImage(named: "stop"), …
Run Code Online (Sandbox Code Playgroud)

ios swift rx-swift

2
推荐指数
1
解决办法
8387
查看次数

在Sierra上安装Kamailio时找不到mi_fifo.so和mi_rpc.so文件

我尝试在Sierra OS上启动kamailio.当我使用"/ usr/local/sbin/kamailio -c"运行kamailio时出现此错误:

 0(49276) ERROR: <core> [core/sr_module.c:571]: load_module(): could not find module <mi_fifo> in </usr/local/lib64/kamailio/modules/>
 0(49276) CRITICAL: <core> [core/cfg.y:3401]: yyerror_at(): parse error in config file /usr/local/etc/kamailio/kamailio.cfg, line 219, column 12-23: failed to load module
 0(49276) ERROR: <core> [core/sr_module.c:571]: load_module(): could not find module <mi_rpc> in </usr/local/lib64/kamailio/modules/>
 0(49276) CRITICAL: <core> [core/cfg.y:3401]: yyerror_at(): parse error in config file /usr/local/etc/kamailio/kamailio.cfg, line 236, column 12-22: failed to load module
 0(49276) ERROR: <core> [core/modparam.c:152]: set_mod_param_regex(): No module matching <mi_fifo> found
 0(49276) CRITICAL: <core> [core/cfg.y:3404]: …
Run Code Online (Sandbox Code Playgroud)

macos sip pjsip kamailio

0
推荐指数
1
解决办法
1066
查看次数

由于“|”,无法创建 NSURL 对象 url 字符串中的符号

我需要从像URL字符串创建NSURL的目标这一。它包含|符号。问题是 NSURL 构造函数总是返回 nil,因为|符号。我怎样才能创建这个对象?

nsurl ios swift

-2
推荐指数
1
解决办法
705
查看次数