小编MrA*_*lek的帖子

使用Core Data计算简单总和

我有一个简单的Core Data存储,其实体Cost带有整数属性"value".我想总结一下我店里的所有成本,这相当于以下的sql语句:

SELECT sum(value) FROM costs
Run Code Online (Sandbox Code Playgroud)

如何在Cocoa Touch中以最有效的方式实现?使用核心数据?或者只是获取所有成本实体并手动进行求和?

core-data objective-c ios

11
推荐指数
2
解决办法
6800
查看次数

如何在Swift中的变异结构上正确创建一个延迟派生属性?

我正在制作一个具有非常昂贵的计算导出值的变异结构.所以我想做的是懒惰地计算这个派生值并存储结果,直到结构再次发生变异,此时派生值不再有效,需要重新计算.

(失败)选项1:生成的属性

如果派生值是生成的属性(如下所示),则始终返回正确的值,但始终重新计算.

(失败)选项2:延迟加载的属性

如果它是一个懒惰的属性,那么计算只进行一次......永远.因此,一旦结构发生变异,派生值就会出错,并且不会重新计算.此外,如果我从结构中分配一个常量值,我无法访问该属性.

在Swift 1.2中是否有任何可能的解决方案或者我需要提交雷达吗?

struct Struct {
    var value: Int

    // Option 1: Generated property
    var derivedValue: Int {
        println("Doing expensive calculation")
        return self.value * 2
    }

    // Option 2: Lazy property
    lazy var derivedValue: Int = {
        println("Doing expensive calculation")
        return self.value * 2
    }()

    init(value: Int) {
        self.value = value
    }

    mutating func mutate() {
        value = random()
    }
}

var test = Struct(value: 2)
test.derivedValue
test.derivedValue // If not lazy, expensive calculation is done …
Run Code Online (Sandbox Code Playgroud)

struct mutable lazy-evaluation swift

6
推荐指数
1
解决办法
2588
查看次数

标签 统计

core-data ×1

ios ×1

lazy-evaluation ×1

mutable ×1

objective-c ×1

struct ×1

swift ×1