V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
jpush
V2EX  ›  分享发现

Playground 你不知道的小技巧, CoreData 的使用

  •  
  •   jpush · 2017-02-22 13:29:22 +08:00 · 1529 次点击
    这是一个创建于 2834 天前的主题,其中的信息可能已经有所发展或是发生改变。

    Playground 的出现无疑是大大的提高了开发效率,可以节省大量的编译时间。

    这里介绍在 Playground 中使用 CoreData 的小技巧。

    1. 我们新建一个工程 iOS 项目工程。
    2. 点击 File -> New -> File , 在工程中新建文件 Data Model 文件
    3. 在 model 中添加一个 Entitle,如下图
    4. 编译工程后,在 Product 选择生成的 .app 文件,找到该目录,如下图
    5. 查看包中的文件,如图
    6. 可以看到一个 Mode.momd 文件, 如图
    7. 在工程中新建一个 playground 文件
    8. 把刚才的 Model.momd 文件拷贝到 playground 的 Resource 目录下
    9. 在 playground 中就可以直接使用这个 Model 资源了
    //: Playground - noun: a place where people can play
    
    import UIKit
    import CoreData
    
    // Core Data Stack Setup for In-Memory Store
    public func getModelContext(name:String) -> NSManagedObjectContext {
      
      // Replace "Model" with the name of your model
      let modelUrl = NSBundle.mainBundle().URLForResource(name, withExtension: "momd")
      guard let model = NSManagedObjectModel.init(contentsOfURL: modelUrl!) else { fatalError("not this file") }
      
      let psc = NSPersistentStoreCoordinator(managedObjectModel: model)
      try! psc.addPersistentStoreWithType(NSInMemoryStoreType, configuration: nil, URL: nil, options: nil)
      
      let context = NSManagedObjectContext(concurrencyType: .MainQueueConcurrencyType)
      context.persistentStoreCoordinator = psc
      
      return context
    }
    
    let context = getModelContext("Model")
    
    // Insert a new Entity
    let ent = NSEntityDescription.insertNewObjectForEntityForName("Entity", inManagedObjectContext: context)
    ent.setValue("fasf", forKey: "name")
    
    try! context.save()
    
    // Perform a fetch request
    let fr = NSFetchRequest(entityName: "Entity")
    let result = try! context.executeFetchRequest(fr)
    
    print(result)
    
    

    结果如图

    参考链接

    作者: HuminiOS - 极光( JPush 为极光团队账号,欢迎关注)

    原文: http://www.jianshu.com/p/818c063cf686

    知乎专栏:极光日报

    目前尚无回复
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   6028 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 02:47 · PVG 10:47 · LAX 18:47 · JFK 21:47
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.