如何使用realm来保存NSURL数组?

时间:2018-04-26 06:41:04

标签: ios objective-c realm

现在,我有一个领域模型,包括图像,音频和其他。所以我必须获取媒体文件的URL并给出URL的模型值。但我遇到了一个问题,我无法将它们保存到这个领域。因为我无法保存NSArray,所以当我使用RLMArray来包含它们时,它也无法解决。那么如何为我的模型提供URL?

1 个答案:

答案 0 :(得分:2)

不可能直接在Realm中添加NSURL类型,但您可以自己使用变通方法: -

@interface MyModel : JOBIBaseModel

@property (nonatomic, strong) NSString * urlString;

-(NSURL *)getUrl;

@end

@implementation MyModel

-(NSURL *)getUrl{
    return [NSURL URLWithString:self.urlString];
}

@end

然后从您的对象访问它,如: -

NSURL *url=Obj.getUrl;

更新数组

RLM_ARRAY_TYPE(MyArrayModel);
@interface MyArrayModel : JOBIBaseModel
@property (nonatomic, strong) NSString * urlString;
-(NSURL *)getUrl;
@end

@implementation MyArrayModel
-(NSURL *)getUrl{
    return [NSURL URLWithString:self.urlString];
}
@end

@interface MyModel : JOBIBaseModel
@property (nonatomic, strong) RLMArray <MyArrayModel> * strings;
@end

@implementation MyModel

@end

并使用它: -

NSURL *url=Obj.strings[0].getUrl;