小编xis*_*urg的帖子

NSDateFormatter毫秒bug

我想创建一个NSDateFormatter来解析像这样的日期"2014-05-13 23:31:41.374577".所以:

NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
formatter.dateFormat = @"yyyy-MM-dd HH:mm:ss.SSSSSS";
NSString *dateString = @"2014-05-13 23:31:41.374577";
NSDate *date = [formatter dateFromString:dateString];
NSString *anotherDateString = [formatter stringFromDate:date];
Run Code Online (Sandbox Code Playgroud)

但是,anotherDateString是的2014-05-13 23:31:41.374000.为什么它会截断毫秒?

nsdateformatter ios

10
推荐指数
1
解决办法
1742
查看次数

迭代std :: vector(间接)时删除

这个问题已被多次询问,但我的情况略有不同.假设我有一个观察者的std :: vector,当某个事件发生时我会通知它:

void SomeClass::doThing() {
    // do things ...
    // notify observers
    for (auto* o : mObservers) {
        o->thingHappened();
    }
}
Run Code Online (Sandbox Code Playgroud)

如果在thingHappened观察者的实现中调用一个方法SomeClass从观察者中删除自己怎么办?有哪些最佳方法可以解决这个问题?

一种可能性是mObservers在for循环之前复制并使用它,但额外的副本可能是浪费.

另一种可能性是在循环结束后将更改委托给要运行的数组,也许在循环开始之前设置一个锁(只是一个布尔值),并且在设置此锁定时,变换向量的方法委托自己调用之后当lock设置为false时可以完成循环(可以使用lambdas向量完成...非常麻烦).

c++ vector

4
推荐指数
2
解决办法
207
查看次数

标签 统计

c++ ×1

ios ×1

nsdateformatter ×1

vector ×1