标签: realm

清除完整的Realm数据库

我正在使用领域(目前为0.85.0),我的应用程序使用数据库来存储用户特定的数据,例如当前用户的联系人.当用户决定退出时,我需要删除关于用户的每一点信息,在我看来,最明显,简单和干净的东西将是擦除整个领域.不幸的是,Cocoa lib没有提供该功能.

目前,我坚持以下

RLMRealm *realm = [RLMRealm defaultRealm];
[realm beginWriteTransaction];
[realm deleteObjects:[MyRealmClass1 allObjectsInRealm:realm]];
[realm deleteObjects:[MyRealmClass2 allObjectsInRealm:realm]];
[realm deleteObjects:[MyRealmClass3 allObjectsInRealm:realm]];
[realm commitWriteTransaction];
Run Code Online (Sandbox Code Playgroud)

任何更好的想法?

谢谢

realm ios

38
推荐指数
4
解决办法
3万
查看次数

如何在Swift for Realm模型中设置主键

我在一个新的iOS Swift项目中使用Realm.我正在使用Xcode 6.0.1与iOS SDK 8.0和Realm 0.85.0

我正在尝试使用新的Realm主键功能,所以我可以做一个addOrUpdateObject.

这是一个示例模型:

import Foundation
import Realm

class Foo: RLMObject {
    dynamic var id = 0
    dynamic var title = ""

    func primaryKey() -> Int {
        return id
    }
}
Run Code Online (Sandbox Code Playgroud)

我是如何尝试添加/更新新对象的:

let foo = Foo()
foo.title = titleField.text
foo.id = 1

// Get the default Realm
let realm = RLMRealm.defaultRealm()

// Add to the Realm inside a transaction
realm.beginWriteTransaction()
realm.addOrUpdateObject(foo)
realm.commitWriteTransaction()
Run Code Online (Sandbox Code Playgroud)

我收到此错误:

RLMExecption',原因:''Foo'没有主键,无法更新

以下是主键上的文档.我可能没有正确设置:http: //realm.io/docs/cocoa/0.85.0/api/Classes/RLMObject.html#//api/name/primaryKey

最新文档现在在这里:https: //realm.io/docs/objc/latest/api/Classes/RLMObject.html#//api/name/primaryKey

realm ios swift

38
推荐指数
3
解决办法
3万
查看次数

如何在Realm中设置自动增量键?

我为每个ChatData对象都有一个唯一的msgid.

@interface ChatData : RLMObject
@property NSInteger msgid;
....
@end
Run Code Online (Sandbox Code Playgroud)

但每次我创建一个新对象时,我必须查询所有对象并获取最后一个msgid.

RLMArray *all = [[ChatData allObjects] arraySortedByProperty:@"msgid" ascending:YES];
ChatData *last = [all lastObject];
ChatData *newData = [[ChataData alloc]init];
newData.msgid = last.msgid+1;
Run Code Online (Sandbox Code Playgroud)

有没有一种有效的方法来替换这种实现?

realm ios

34
推荐指数
4
解决办法
3万
查看次数

如何轻松删除领域中的所有对象

我可以选择进行迁移,但我更愿意删除defaultRealm()中的所有内容.我怎么能这么容易做到?

realm.deleteObject(object)
Run Code Online (Sandbox Code Playgroud)

是唯一与.deleteObjects一起使用的函数.

我试过以下代码:

方法1

realm.deleteObjects(RLMObject.objectsInRealm(realm, withPredicate: NSPredicate(value: true)))
Run Code Online (Sandbox Code Playgroud)

方法2

        realm.deleteObjects(Dog.allObjectsInRealm(realm))
        realm.deleteObjects(Person.allObjectsInRealm(realm))
        realm.deleteObjects(Goal.allObjectsInRealm(realm))
        realm.deleteObjects(Goals.allObjectsInRealm(realm))
Run Code Online (Sandbox Code Playgroud)

两者都无法阻止迁移异常.

realm ios swift

31
推荐指数
4
解决办法
4万
查看次数

Xcode无法找到strip-frameworks.sh目录

我最近将Xcode更新到版本7.1,其中包括Swift 2.1.我安装了Swift 2.1而没有任何麻烦.在尝试运行我的项目后,我意识到我需要获取最新版本的Realm,因为之前的版本不支持Swift 2.1.我删除了旧框架并导入了Realm 0.96.2.每当我跑,我现在得到这个错误:

bash: /Users/userName/Library/Developer/Xcode/DerivedData/appName-ghiroqitgsbvfhdqxsscyokyoouz/Build/Products/Debug-iphoneos/appName.app/Frameworks/Realm.framework/strip-frameworks.sh: No such file or directory
Run Code Online (Sandbox Code Playgroud)

我怀疑问题在于如果您希望将应用程序提交到App Store所需的脚本,因此我删除了运行脚本阶段,添加了新脚本,并从Realm文档站点复制了脚本:

bash "${BUILT_PRODUCTS_DIR}/${FRAMEWORKS_FOLDER_PATH}/Realm.framework/strip-frameworks.sh"
Run Code Online (Sandbox Code Playgroud)

我认为那会解决它,但事实并非如此.然后我认为问题可能出在Realm.framework或RealmSwift.framework文件中,所以我删除了它们并重新导入它们(以防万一我搞砸了).没有改变.有谁知道这个错误是否有解决方法?

谢谢!-CodeIt

xcode realm ios

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

我是否正确理解了 MongoDB Realm?

有三个组成部分:

  • 领域数据库:本地存储和持久性
  • 领域同步:在客户端和 Mongo DB Atlas 之间同步领域数据库
  • Mongo DB Atlas:一个云数据库。

您可以单独或一起使用每个。这样你就可以

  • 只需使用 Realm 数据库在本地存储数据而不同步
  • 只需将数据存储在 Mongo DB Atlas 上,而不使用领域同步,使用标准查询访问数据。
  • 使用领域同步创建一个同步领域,将您的 mongo db atlas 数据库分区到本地领域,并在数据库和使用它的所有客户端之间同步数据。

这一切都正确吗?(谢谢)

realm mongodb realm-mobile-platform mongodb-atlas

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

RealmObject的Kotlin数据类

我正在使用Kotlin和Realm编写数据类

data class AuthToken(val register: Boolean,
                     val token: String,
                     val tokenSecret: String,
                     val user: AuthUser)
Run Code Online (Sandbox Code Playgroud)

我必须将数据保存到db,所以我使用Realm来保存它.但是正如我们所知,如果我想将类保存到Realm,那么AuthToken该类必须扩展RealmObject.

这就是问题,Kotlin说数据类不能扩展类.所以我放弃数据类,只使用普通的Kotlin类作为模型,然后另一个问题来了:

Kotlin类没有吸气剂或固定剂.我们知道Realm类必须将所有属性设置为private并编写getter和setter.

现在我想知道如何解决这个问题.

android realm kotlin data-class

29
推荐指数
1
解决办法
8795
查看次数

使用领域和回收站视图的最佳实践?

你们有关于使用领域和Recyclerview的最佳实践吗?我知道这是一般性问题,但我在网上找不到任何内容.例如,我遇到了很多麻烦,试图在一行上实现简单的颜色变化.例如,考虑这种典型用法:

public class User extends RealmObject {
   @PrimaryKey
   String name;

   boolean isSelected;
   ... 

   constructor, getter and setters 
}

public class UserAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> {

    private RealmResults<User> users;

    public UserAdapter(RealmResults<User> users) {
        this.users = users;
    }

   ...

   public void markAsSelected(int position){
      // get the old selected user and deselect it
      notifyItemChanged(? how do i get the position given my User has no index ?);

      // mark as selected the new user at position
   }
Run Code Online (Sandbox Code Playgroud)

我遇到了很多问题,因为我在互联网上找不到任何东西.我知道这是因为我不知道如何正确使用领域.但找到正确的方法本身就是一场斗争.我阅读了他们所有的文档,但无济于事.

编辑:因为我被要求 - >而不是说"我有一堆问题",描述你的问题,我们将尝试提供你的不理解的见解和答案.

所以我的问题很简单:

我有一个RealmUser:

public …
Run Code Online (Sandbox Code Playgroud)

android realm android-recyclerview

28
推荐指数
3
解决办法
2万
查看次数

如何使用预先填充的领域数据库提供应用程序

我想在我的领域数据库中提供已预先填充数据的应用程序.我是否只需将其复制到文档目录或是否还有其他事情要做?

realm

28
推荐指数
1
解决办法
8729
查看次数

RLMException,对象类型需要迁移

我有一个对象NotSureItem中,我有三个属性title的名字是从更名texttextDescription我已经后来添加和dateTime财产.现在,当我要运行我的应用程序时,它会在我想要向这些属性添加内容时崩溃.它显示以下声明.

'Migration is required for object type 'NotSureItem' due to the following errors:
- Property 'text' is missing from latest object model.
- Property 'title' has been added to latest object model.
- Property 'textDescription' has been added to latest object model.'
Run Code Online (Sandbox Code Playgroud)

这是我的代码:

import Foundation
import Realm

class NotSureItem: RLMObject {
    dynamic var title = ""   // renamed from 'text'
    dynamic var textDescription = "" // added afterwards
    dynamic var …
Run Code Online (Sandbox Code Playgroud)

realm ios swift

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