gpt4 book ai didi

ios - 如何在 Realm 中使用随机和限制

转载 作者:搜寻专家 更新时间:2023-10-31 22:07:33 25 4
gpt4 key购买 nike

我在 swift 中使用了 realm.io。我有 6 个和更多数据。我想随机选择 4 个数据。

var words: Results<Word> {
get {
return Realm().objects(Word).filter("Limit(4)")
}
}

最佳答案

swift 2

这是我尝试创建一个随机函数。

在我的例子中,我必须从 Realm DB 中检索一张随机图像并显示它。所以我在 Image 类中做了一个静态函数。

class Image: Object {
dynamic var filename = ""

static func randomImage() -> Image? {
let images = uiRealm.objects(Image)
if images.count == 0 {
return nil
}
let index = Int(arc4random_uniform(UInt32(images.count)))
return images[index]
}
}

//Get a random image
Image.randomImage()

至于限制功能,我真的没有看到它的必要性,但这里有一个可行的方法:

class Image: Object {
dynamic var filename = ""

static func limitImages(limit: Int) -> [Image]? {
let images = uiRealm.objects(Image)
if images.count == 0 {
return nil
}
var limitImages: [Image] = []
for iter in 0..<limit {
if images.count < iter {
break
} else {
limitImages.append(images[iter])
}
}
return limitImages
}
}

//Get 5 images
Image.limitImages(5)

您可以将这些函数用作 Realm 扩展,执行如下操作:

extension Realm {
func random(type: Object.Type) -> Object? {
let objects = uiRealm.objects(type)
if objects.count == 0 {
return nil
}
let index = Int(arc4random_uniform(UInt32(objects.count)))
return objects[index]
}
}

//Get a random Animal
let myRealm = try! Realm()
myRealm.random(Animal)

或者结果对象版本

extension Results {
func random() -> T? {
if self.count == 0 {
return nil
}
let index = Int(arc4random_uniform(UInt32(self.count)))
return self[index]
}
}

//Get a random row from any Object
let randomObject = myRealm.objects(Person).random()

关于ios - 如何在 Realm 中使用随机和限制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32173473/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com