通用领域存储库类

时间:2018-08-21 18:45:04

标签: ios swift generics realm repository

我创建了一个名为RealmRepo的通用类,该类接收从Object扩展的类型,因此可以由Realm进行操作。它的用法很简单:

  • 假设有一个从Object扩展的User类。

            string fName = @hdfRuta.Value; //Ruta donde se encuentra el archivo txt Ejm: c:\log\log21082018.txt
    
            System.IO.FileStream fs = System.IO.File.Open(fName, 
            System.IO.FileMode.Open);
            byte[] btFile = new byte[fs.Length];
            fs.Read(btFile, 0, Convert.ToInt32(fs.Length));
            fs.Close();
    
            Response.Clear();
            Response.ClearHeaders();
            Response.AddHeader("Content-Disposition", "attachment; filename=" + hdfNombreArchivo.Value); //hdfNombreArchivo: Nombre del archivo .txt a generarse Ejm: Log_21_08_2018.txt
            EnableViewState = false;
            Response.ContentType = "text/plain";  
            Response.BinaryWrite(btFile);
            Response.End();
    
    
        protected void btnBajarLog_PreRender(object sender, EventArgs e)
        {
            Button btn = (Button)sender;
            ScriptManager newScriptManager = 
           (ScriptManager)Page.FindControl("scmRegistroMasivoEvento");
            newScriptManager.RegisterPostBackControl(btn);
        }
    
  • 然后,如果我想使用RealmRepo类,我要做的就是:

    class User: Object {
        @objc dynamic var name: String = "User"
    }
    
  • 到目前为止,该实现有效并且满足了我的需求,但事实是,我确信这可以通过更好的方式完成,并且我希望收到有关如何执行此操作的评论。

  • 我发现的主要“问题”是使用let newUser = User() RealmRepo<User>.add(item: newUser) RealmRepo<User>.add(item: [newUser]) let allUsers = RealmRepo<User>.getAll() let firstUser = RealmRepo<User>.getFirst() let nameToFilterBy = "User" let userByName = RealmRepo<User>.getBy("name", nameToFilterBy) RealmRepo<User>.deleteAll() 协议以及如何区分AddableItem还是不存在。我复制了无法解耦的代码。

  • 因此,非常感谢您了解如何改进PrimaryKeyable协议及其实现的任何技巧。

  • RealmRepo实现:

    Addable

0 个答案:

没有答案