关闭

CoreData 从入门到精通(六)模型版本和数据迁移

前面几篇文章中讲的所有内容,都是在同一个模型版本上进行操作的。但在真实开发中,基本上不会一直停留在一个版本上,因为需求是不断变化的,说不定什么时候就需要往模型里添加新的字段,添加新的模型,甚至是大规模的重构;所以数据的迁移就显得尤为重要了。 CoreData 中,数据迁移本质就是把旧的 SQLite 数据库里的内容,复制到新的 SQLite 数据库里去,让新的数据库作为默认的数据存储。伴随着模型版...
阅读(261) 评论(0)

CoreData 从入门到精通(五)CoreData 和 TableView 结合

我们知道 CoreData 里存储的是具有相同结构的一系列数据的集合,TableView 正好是用列表来展示一系列具有相同结构的数据集合的。所以,要是 CoreData 和 TableView 能结合起来,CoreData 查询出来的数据能同步地显示在 TableView 上,更好一点就是 CoreData 里的改动也能同步到 TableView 上,那就再好不过了。可喜的是,确实有这样一个 API...
阅读(239) 评论(0)

CoreData 从入门到精通(四)并发操作

通常情况下,CoreData 的增删改查操作都在主线程上执行,那么对数据库的操作就会影响到 UI 操作,这在操作的数据量比较小的时候,执行的速度很快,我们也不会察觉到对 UI 的影响,但是当数据量特别大的时候,再把 CoreData 的操作放到主线程中就会影响到 UI 的流畅性。自然而然地我们就会想到使用后台线程来处理大量的数据操作。使用后台 managedObjectContextCoreData...
阅读(429) 评论(1)

CoreData 从入门到精通(三)关联表的创建

CoreData 从入门到精通(三)关联表的创建上篇博客中讲了 CoreData 里增删改查的使用,学到这里已经可以应对简单的数据存储需求了。但是当数据模型复杂起来时,例如你的模型类中除了要存储 CoreData 里支持的数据类型外,还有一些自定义的数据类型,这个时候只靠单一的模型结构就没办法来满足这种需求了,于是我们就需要使用关联表结构,也就是我们这次要讲的内容。简介多表关联,相信接触过 SQL...
阅读(388) 评论(0)

CoreData 从入门到精通 二 数据的增删改查

在上篇博客中,讲了数据模型和 CoreData 栈的创建,那下一步就是对数据的操作了。和数据库一样,CoreData 里的操作也无非是增删改查。下面我们将逐步讲解在 CoreData 中进行增删改查的方式。基本的增删改查插入条目先来看一下插入条目的方式,在插入之前,我们需要先创建要插入的数据, 使用 NSEntityDesctiption 类的 + (__kindof NSManagedObject...
阅读(598) 评论(0)

CoreData 从入门到精通 (一) 数据模型 + CoreData 栈的创建

概述CoreData 是 Cocoa 平台上用来管理模型层数据和数据持久化的一个框架,说简单点,就是一个数据库存储框架。CoreData 里相关的概念比较多,而且初始化也非常繁琐,所以对初学者的学习还是有一些困难的。这篇文章将从头到尾详细地讲一遍 CoreData 的使用方法,从 CoreData 的初始化到简单的增删改查,再到批量处理,数据模型的版本更新以及和 TableView 的结合等,真正让...
阅读(1821) 评论(0)

Swift 3.0 中的新变化

本文翻译自 www.hackingwithswift.com 上发布的英文文章,原文链接What’s new in Swift 3.0 Swift 3.0 几乎更改了所有东西,如果不做一些修改的话,你的代码很可能不会编译成功。说真的,如果你觉得从 Swift 1.2 跳到 Swift 2.0 的变化大的话,那些还真的不算什么。 在这篇文章里,我会尽可能多的用代码示例来解释那些至关重要的改变,希望...
阅读(2295) 评论(0)

UIButton 的 backgroundImage 和 image 的填充模式

UIButton 的 backgroundImage 和 image 的填充模式在将 UIButton 当做图标按钮使用时,可以有两种方式给它设置一张图片:setBackgroundImage:forState: 和 setImage:forState:。用这两种方式都可以把 UIButton 作为图片按钮使用,这在图片背景的比例和UIButton 的宽高比例相同时是没什么问题的,图片都不会因为被拉...
阅读(1903) 评论(0)

Git 入门

git 介绍什么是gitgit 是一种免费开源的版本控制工具,是由 Linux 发明者 Linus Torvalds 开发,使用 git 可以很方便的进行代码协同开发、版本控制。 git 与 svn git 是分布式的,svn 是集中式。git 可以把仓库克隆到本地,在自己的机器上进行开发,将代码提交到本地,最后提交到远程仓库;svn 需要从服务器获取代码,开发完之后再提交回服务器,脱离了服务器...
阅读(271) 评论(0)

使用Xcode 7进行单元测试

单元测试简介单元测试是指对项目工程中每一个小的模块来单独进行测试,这些模块可以指一个方法、一个类或者一系列的类组成的一个功能模块。单元测试的目的就是验证这些模块是否按照预想的逻辑去执行。只有每个模块都能正常运作,最后的应用程序运行时才不会出错。编写单元测试能够提前发现模块中存在的问题并及时解决,如果不进行单元测试,而是在App所有代码完成时直接看运行效果,这个时候可能会有多个模块同时存在各种各样的问...
阅读(600) 评论(0)

Swift 3.0 中 GCD 相关函数的语法

在 Swift 3.0 中,一些 c 语言的 API 调用相比以前发生了较大的变化。包括 GCD 这个经常使用的框架。在Swift <= 2.2 的时代,调用方式和Objective-C中的用法相同,直接调用 dispatch_async(....) 就可以;这明显不够面向对象。终于,到了 Swift 3.0 ,Apple 把这些 C 语言的 API 改成了更加面向对象的调用方式。现在我们再调用上面...
阅读(385) 评论(0)

使用外部拦截法处理滑动冲突

当有多个可以滚动的View进行嵌套时,例如水平的ScrollView嵌套多个ListView的情况,ScrollView水平滚动,而ListView是竖直滚动。由于滑动方向不一致,可能会出现滑动冲突。这时候可以通过重写父容器的 onInterceptTouchEvent 来决定在什么情况下,父容器应该拦截触摸事件,从而解决滑动冲突,这种方法称为外部拦截法。外部拦截法的大致代码实现如下,具体实现的时候...
阅读(182) 评论(0)

正则表达式的使用

定界符在程序语言中使用与Perl兼容的正则表达式,通常都需要将模式表达式放入定界符之间,如”/”.常使用斜线”/”作为定界符,如”/apple/”。用户只要把需要匹配的模式内容放入定界符之间即可。作为定界的字符也不仅仅局限于”/”,除了字母、数字和斜线”\”以外的任何字符都可以作为定界符,像”#”、”|”、”!”等都可以原子原子是正则表达式的最基本组成单元,而且在每个模式中最少要包含一个原子。原子是...
阅读(185) 评论(0)

使用NSPredicate进行数据库查询

简介NSPredicate提供了一个通用的数据查询方式,有两种Predicate类型,分别是comparison 和 compound: comparison predicate 使用运算符来比较两个表达式 compound predicate 对比两个或多个predicate的结果,或者让其他的predicate 失效. Cocoa 里支持非常多的 predicate 类型,例如: 简单的比较:...
阅读(944) 评论(0)

七个Swift中的陷阱以及避免方法

文章转载自简书作者bestswifter的文章,原文链接点击这里 或者查看英文原文 1.协议扩展:强大但是需要谨慎使用 一个Swift类可以去继承另一个类,这种能力是强大的。继承讲使类之间的特定关系更加清晰,并且支持细粒度代码共享。但是,Swift中如果不是引用类型的话(如:结构体、枚举),就不能具有继承关系。然而,一个值类型可以继承协议,同时协议可以继承另一个协议。虽然协议除了类型信息外不能...
阅读(190) 评论(0)
46条 共4页1 2 3 4 下一页 尾页
    个人资料
    • 访问:27179次
    • 积分:648
    • 等级:
    • 排名:千里之外
    • 原创:34篇
    • 转载:10篇
    • 译文:2篇
    • 评论:4条
    最新评论