小编Rya*_*yan的帖子

更改变量中的一个属性会触发其他属性的子目录.RxSwift

我有以下属性结构 Chat

struct Chat {
    var id = String()
    var gender = String()
    var date = Date()

    init() {}
}
Run Code Online (Sandbox Code Playgroud)

在视图控制器中,我声明了一个名为Chat的实例observablechat,然后我使用flatmap运算符来尝试并观察date属性的变化observablechat.但是,如果我更改性别属性(如图所示),则会触发订阅.我想知道为什么会这样,我如何修复此代码,以便订阅只查看date属性发生了什么,没有别的?

class ViewController: UIViewController {

    var observablechat = Variable(Chat())

        observablechat.asObservable()
        .flatMap { (Chat) -> Observable<Date> in
            return Observable.of(Chat.matchDate)
        }.subscribe(onNext: { (r) in
            print(r)
        }).addDisposableTo(disposeBag)


        self.observablechat.value.gender = "male" 
        //triggers subscription above. 
    }
}
Run Code Online (Sandbox Code Playgroud)

system.reactive ios rxjs swift rx-swift

8
推荐指数
1
解决办法
2290
查看次数

facebook sdk在应用程序委托中崩溃

这是我复制bug的方法.所以这是我登录的代码:

@IBAction func FBLoginAction(_ sender: AnyObject) {
    fbLoginManager.loginBehavior = FBSDKLoginBehavior.browser
    fbLoginManager.logIn(withReadPermissions: ["public_profile", "email", "user_friends"], from: self) { (result, error) -> Void in
        if (error != nil) {
            return
        }
    }
 }
Run Code Online (Sandbox Code Playgroud)

如果我登录两次,然后再次运行该应用程序,此行将在appdelegate中崩溃.

    FBSDKApplicationDelegate.sharedInstance().application(application, didFinishLaunchingWithOptions: launchOptions)
Run Code Online (Sandbox Code Playgroud)

如果我只登录一次,然后再次运行应用程序,则不会发生崩溃.崩溃的完整堆栈如下:

2016-12-09 10:51:28.893持久性[73125:897290] - [NSConcreteMutableData isEqualToString:]:无法识别的选择器发送到实例0x60000004ec40 2016-12-09 10:51:28.903持久性[73125:897290]***终止应用由于未捕获的异常'NSInvalidArgumentException',原因:' - [NSConcreteMutableData isEqualToString:]:无法识别的选择器发送到实例0x60000004ec40'

***首先抛出调用堆栈:(0 CoreFoundation 0x00000001085e634b exceptionPreprocess + 171 1 libobjc.A.dylib
0x0000000107c2a21e objc_exception_throw + 48 2 CoreFoundation
0x0000000108655f34 - [NSObject(NSObject)doesNotRecognizeSelector:] + 132 3 CoreFoundation 0x000000010856bc15 ___forwarding_
+ 1013 4 CoreFoundation 0x000000010856b798 _CF_forwarding_prep_0 + 120 5 FBSDKCoreKit
0x000000010700aa5a …

facebook ios swift

7
推荐指数
1
解决办法
1487
查看次数

从作为一个文档一部分的对象数组中获取一个元素(mongoose)

我有一个包含的架构Friends.Friends是一个数组,其中每个元素都是一个包含id,gender和emoji的对象.

var userSchema = new Schema({
    id: {
        type: String,
        unique: true,
        required: true
    },
    gender: String,

    Friends: [{
        id: String
        gender: String
        emoji: String

    }]

});
Run Code Online (Sandbox Code Playgroud)

在下面的代码中,我正在访问一个包含Friends数组的文档,并指定使用它的搜索distinct只显示文档的Friends数组.我只需要访问包含指定id的那个数组的一个元素.不像在代码中完成的那样在查询之后过滤那个数组,有没有办法只从查询中获取元素?换句话说,是否有一个额外的功能来区分或某种类型的猫鼬运算符,允许这样做?

User.findOne().distinct('Friends', { id: req.body.myId }).then(function(myDoc) {

    var friendAtt = myDoc.filter(function(obj) {
        return obj.id == req.body.id
    })[0]

})
Run Code Online (Sandbox Code Playgroud)

mongoose mongodb node.js mongodb-query

6
推荐指数
2
解决办法
8332
查看次数

如何在 Swift 中将 PromiseKit 与 Firebase 结合使用?

所以我导入 PromiseKit 然后尝试

 FIRDatabase.database().reference().child("somechild").removeValue().then  {
///// 
}
Run Code Online (Sandbox Code Playgroud)

显然,这行不通,我想知道如果可能的话,我错过了什么让承诺与 Firebase 一起工作。我想要完成的是使用单个 catch 方法一次删除四个 Firebase 引用。

使用 nodeJs 我很容易使用:

 Promise.all ([
someRef.remove(),
 someRef.remove(),
someRef.remove(),
someRef.remove()
]).then (function({

}).catch({
//handle error
})
Run Code Online (Sandbox Code Playgroud)

有没有办法在 Swift 中做到这一点?

promise ios firebase swift firebase-realtime-database

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

何时在Node.js中使用../ vs ./ require()

var User = require('../ models/user');

所以在Visual Studio中,我创建了一个名为models的文件夹,里面有一个名为user.js的文件.根据我的学习,使用./models/user而不是两个点是有意义的.虽然,这给我一个崩溃,我想知道可能是什么原因.谢谢

visual-studio node.js

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

预测领域中的关系,检查列表是否为空

class User: Object {
    dynamic var name = ""
    let tasks = List<Task>()
}

let realm = try! Realm()
let predicate = NSPredicate(format: "tasks != nil")
users = realm.objects(User).filter(predicate)
Run Code Online (Sandbox Code Playgroud)

我需要获取保存到数据库中的所有用户,这些用户已保存任务.就像谓词所暗示的那样,每个用户必须有任务,如果用户不提取任务.显然,我提供的谓词不起作用,并且始终与消息"包含数组属性的键路径必须使用聚合操作"崩溃.无论如何,我怎么能做这个工作?

realm nspredicate ios swift

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