- 博客(55)
- 资源 (1)
- 收藏
- 关注
转载 objc.io 4.6 Fetch Requests (转)
将对象从存储中取出来的方法之一是使用 NSFetchRequest。但是请注意,一个最常见的错误是在你不需要的时候去读取数据。请确保你已经阅读并理解了获取对象一节中的内容。大多数时候,遍历关系更加有效,而使用 NSFetchRequest 往往成本很高。通常有两个原因使用 NSFetchRequest 来执行数据获取:(1) 你需要为匹配特定谓词 (predicate) 的对象搜索整个对象图;或者
2016-12-19 12:58:37
420
转载 objc.io 4.5 向 CoreData 应用中导入大数据集 (转)
往 Core Data 应用中导入大数据集是个很常见的问题。鉴于数据的特点你可以采用以下几种方法:从 web 服务器上下载数据 (例如 JSON 数据),然后插入到 Core Data 中。从 web 服务器上下载预先生成的 Core Data SQLite 数据库文件。把一个预先生成好的 Core Data SQLite 数据库文件传到应用程序包中。对某些应用场景后两种选择作为可行的方案经
2016-12-19 12:57:01
443
转载 objc.io 4.4 CoreData 详解 (转)
本文我们将会更加深入探讨Core Data 的 models 以及 managed object 的类 。本文绝不是对 Core Data 的简单概述,而是在实际运用中鲜为人知或不易记忆却可以发挥奇效的那一部分的合集。如果你需要的是更详细的概述,那么我推荐你去看 “Apple’s Core Data Programming Guide”。数据模型Core Data数据模型(储存在 *.xcdatam
2016-12-19 12:56:02
426
转载 objc.io 4.3 使用 sqlite 代替 CoreData (转)
凭良心讲,我不能告诉你不去使用 Core Data。它不错,而且也在变得更好,并且它被很多其他 Cocoa 开发者所理解,当有新人加入你的团队或者需要别人接手你的 app 的时候,这点很重要。更重要的是,不值得花时间和精力去写自己的系统去代替它。使用 Core Data 吧。真的。为什么我不使用Core DataMike Ash 写到: 就个人而言,我不是个狂热粉丝。我发现 (Core Data
2016-12-19 12:55:24
388
转载 objc.io 4.2 一个简单的CoreData (转)
在这篇文章中,我们将建立一个小型但却全面支持 Core Data 的应用。此应用允许你创建嵌套的列表;每个列表的 item 都可以有子列表,这将允许你创建非常深层次的 items。为了让大家完整的了解发生了什么,我们将通过使用手动创建堆栈的方式来代替 Xcode 中 Core Data 的模板。这个应用的代码放到了 GitHub 上。我们将怎么建立?首先,我们创建一个 PersistentStack
2016-12-19 12:53:24
506
转载 objc.io 4.1 Core Data (转)
Core Data 可能是 OS X 和 iOS 里面最容易被误解的框架之一,为了帮助大家理解,我们将快速的研究 Core Data,让大家对它有一个初步的了解,对于想要正确使用 Core Data 的同学来说,理解它的概念是非常必要的。几乎所有对 Core Data 感到失望的原因都是因为对它工作机制的错误理解。让我们开始吧:Core Data 是什么?大概八年前,2005年的四月份,Apple
2016-12-19 12:52:42
333
转载 objc.io 3.5 自动布局 (转)
自动布局在 OS X 10.7 中被引进,一年后在 iOS 6 中也可以用了。不久在 iOS 7 中的程序将会有望设置全局字体大小,因此除了不同的屏幕大小和方向,用户界面布局也需要更大的灵活性。Apple 也在自动布局上花了很大功夫,所以如果你还没做过这一块,那么现在就是接触这个技术的好时机。很多开发者在第一次尝试使用这个技术时都非常挣扎,因为用 Xcode 4 的 Interface Builde
2016-12-19 12:51:37
386
转载 objc.io 3.4 自定义View技巧 (转)
本文将讨论一些自定义视图、控件的诀窍和技巧。我们先概述一下 UIKit 向我们提供的控件,并介绍一些渲染技巧。随后我们会深入到视图和其所有者之间的通信策略,并简略探讨辅助功能,本地化和测试。视图层次概览如果你观察一下 UIView 的子类,可以发现 3 个基类: reponders (响应者),views (视图)和 controls (控件)。我们快速重温一下它们之间发生了什么。UIRespond
2016-12-19 12:50:59
305
转载 objc.io 3.3 UICollectionView (转)
UICollectionView 在 iOS6 中第一次被引入,也是 UIKit 视图类中的一颗新星。它和 UITableView 共享一套 API 设计,但也在 UITableView 上做了一些扩展。UICollectionView 最强大、同时显著超出 UITableView 的特色就是其完全灵活的布局结构。在这篇文章中,我们将会实现一个相当复杂的自定义 collection view 布局,
2016-12-19 12:50:05
286
转载 objc.io 3.2 UIScrollView (转)
可能你很难相信 UIScrollView 和一个标准的 UIView 差异并不大,scroll view 确实会多出一些方法,但这些方法只是和 UIView 的属性很好的结合到一起了。因此,在要想弄懂 UIScrollView 是怎么工作之前,你需要先了解一下 UIView,特别是视图渲染的两步过程。光栅化和组合渲染过程的第一部分是众所周知的光栅化(rasterization),光栅化简单的说就是产
2016-12-19 12:49:16
248
转载 objc.io 3.1 图像是怎样绘制到屏幕的 (转)
一个像素是如何绘制到屏幕上去的?有很多种方式将一些东西映射到显示屏上,他们需要调用不同的框架、许多功能和方法的结合体。这里我们大概的看一下屏幕之后发生的事情。当你想要弄清楚什么时候、怎么去查明并解决问题时,我希望这篇文章能帮助你理解哪一个 API 可以更好的帮你解决问题。我们将聚焦于 iOS,然而我讨论的大多数问题也同样适用于 OS X。图形堆栈当像素映射到屏幕上的时候,后台发生了很多事情。但一旦他
2016-12-19 12:48:27
547
转载 objc.io 2.5 测试异步代码 (转)
在开发高质量应用程序的过程中,测试是一个很重要的工具。在过去,当并发并不是应用程序架构中重要组成部分的时候,测试就相对简单。随着这几年的发展,使用并发设计模式已愈发重要了,想要测试好并发应用程序,已成了一个不小的挑战。测试并发代码最主要的困难在于程序或信息流不是反映在调用堆栈上。函数并不会立即返回结果给调用者,而是通过回调函数,Block,通知或者一些类似的机制,这些使得测试变得更加困难。然而,测试
2016-12-19 12:46:49
290
转载 objc.io 2.4 GCD安全 (转)
这篇文章将专注于实用技巧,设计模式,以及对于写出线程安全类和使用 GCD 来说所特别需要注意的一些反面模式。线程安全Apple 的框架首先让我们来看看 Apple 的框架。一般来说除非特别声明,大多数的类默认都不是线程安全的。对于其中的一些类来说,这是很合理的,但是对于另外一些来说就很有趣了。就算是在经验丰富的 iOS/Mac 开发者,也难免会犯从后台线程去访问 UIKit/AppKit 这种错误。
2016-12-19 12:45:56
275
转载 objc.io 2.3 GCD常用方法 (转)
这篇文章里,我们将会讨论一些 iOS 和 OS X 都可以使用的底层 API。除了 dispatch_once ,我们一般不鼓励使用其中的任何一种技术。但是我们想要揭示出表面之下深层次的一些可利用的方面。这些底层的 API 提供了大量的灵活性,随之而来的是大量的复杂度和更多的责任。在我们的文章常见的后台实践中提到的高层的 API 和模式能够让你专注于手头的任务并且免于大量的问题。通常来说,高层的 A
2016-12-19 12:43:58
327
转载 objc.io 2.2 Common Background Practices(转)
本文主要探讨一些常用后台任务的最佳实践。我们将会看看如何并发地使用 Core Data ,如何并行绘制 UI ,如何做异步网络请求等。最后我们将研究如何异步处理大型文件,以保持较低的内存占用。因为在异步编程中非常容易犯错误,所以,本文中的例子都将使用很简单的方式。因为使用简单的结构可以帮助我们看透代码,抓住问题本质。如果你最后把代码写成了复杂的嵌套回调的话,那么你很可能应该重新考虑自己当初的设计选择
2016-12-19 11:53:05
448
转载 objc.io 2.1 Concurrent Programming: APIs and Challenges (转)
并发所描述的概念就是同时运行多个任务。这些任务可能是以在单核 CPU 上分时(时间共享)的形式同时运行,也可能是在多核 CPU 上以真正的并行方式来运行。OS X 和 iOS 提供了几种不同的 API 来支持并发编程。每一个 API 都具有不同的功能和使用限制,这使它们适合不同的任务。同时,这些 API 处在不同的抽象层级上。我们有可能用其进行非常深入底层的操作,但是这也意味着背负起将任务进行良好处
2016-12-19 11:51:45
357
转载 objc.io 1.4 View Controller Containment (转)
在 iOS 5 之前,view controller 容器是 Apple 的特权。实际上,在 view controller 编程指南中还有一段申明,指出你不应该使用它们。Apple 对 view controllers 的总的建议曾经是“一个 view controller 管理一个全屏幕的内容”。这个建议后来被改为“一个 view controller 管理一个自包含的内容单元”。为什么 App
2016-12-19 11:49:52
276
转载 objc.io 1.3 测试驱动 (转)
我们不是迷信测试,但它应该帮助我们加快开发进度,并且让事情变得更有趣。让事情保持简单测试简单的事情很简单,同样,测试复杂的事会很复杂。就像我们在其他文章中指出的那样,让事情保持简单小巧总是好的。除此之外,它还有利于我们测试。这是件双赢的事。让我们来看看测试驱动开发(简称 TDD),有些人喜欢它,有些人则不喜欢。我们在这里不深入讨论,只是如果用 TDD,你得在写代码之前先写好测试。如果你好奇的话,可以
2016-12-19 11:32:52
241
转载 objc.io 1.2 Table view (转)
Table view 是 iOS 应用程序中非常通用的组件。许多代码和 table view 都有直接或间接的关系,随便举几个例子,比如提供数据、更新 table view,控制它的行为以及响应选择事件。在这篇文章中,我们将会展示保持 table view 相关代码的整洁和良好组织的技术。UITableViewController vs. UIViewControllerApple 提供了 UITa
2016-12-19 11:28:13
208
转载 objc.io 1.1 View controller 瘦身 (转)
View controllers 通常是 iOS 项目中最大的文件,并且它们包含了许多不必要的代码。所以 View controllers 中的代码几乎总是复用率最低的。我们将会看到给 view controllers 瘦身的技术,让代码变得可以复用,以及把代码移动到更合适的地方。你可以在 Github 上获取关于这个问题的示例项目。把 Data Source 和其他 Protocols 分离出来把
2016-12-19 10:25:27
250
转载 iOS 图片加载机制 —FastImageCache解析
原版地址:http://blog.cnbang.net/tech/2578/iOS从磁盘加载一张图片,使用UIImageVIew显示在屏幕上,需要经过以下步骤:1.从磁盘拷贝数据到内核缓冲区2.从内核缓冲区复制数据到用户空间3.生成UIImageView,把图像数据赋值给UIImageView4.如果图像数据为未解码的PNG/JPG,解码为位图数据5.CATransaction捕获到UIIm
2016-10-31 15:53:02
573
原创 CAShapeLayer
CAShapeLayer is a CALayer subclass that let you draw various shapes on screen, from the very simple to the most complex. First at all,let photoLayer = CALayer()let circleLayer = CAShapeLayer()let
2016-10-31 15:10:03
228
原创 Layer-Springs
IntroductionSpring animations for layers work a bit differently than the ones you create by calling the UIKit method for spring animations. The UIKit method lets you create a somewhat oversimplified
2016-08-08 17:59:34
331
转载 一步一步 搞定RSA(公钥、私钥)
首先我们要会生成RSA密钥文件,现在一步步的来给大家展示一下,如何生成我们所需的公钥和私钥文件:RSA密钥生成过程生成私钥文件$ openssl genrsa -out private.pem 1024 openssl:是一个自由的软件组织,专注做加密和解密的框架。 genrsa:指定了生成了算法使用RSA -out:后面的参数表示生成的key的输入文件 1024
2016-05-20 14:28:09
705
转载 TheSwiftProgrammingLanguage中文手册
The Swift Programming Language 中文手册目录欢迎使用 Swift关于 SwiftSwift 初见Swift 教程基础部分基本运算符字符串和字符集合类型控制流函数闭包枚举类和结构体属性方法附属脚本继承构造过程析构过程自动引用计数可选链类型检查类型嵌套扩展协议泛型[访问控制](https://github.com/Coco
2016-02-18 14:47:19
367
原创 RunLoop
概念一个非主线程的声明周期,是从线程刚开始创建到任务结束的,但是假如我们想让一个线程一直处于待处理状态,即随时可以接受外界调用,则需要用到RunLoop。即RunLoop是一个对象,管理其需要处理的事件和消息,并提供了一个入口函数执行一个循环,线程一直处于这个循环中,知道外界传入了结束消息。与线程的关系RunLoop 与线程是一一对应的。关系保存在一个全局字典里面,线程刚创建的时候,RunLoop
2016-02-18 09:44:52
329
原创 从头到尾写SQL(五)
数据库函数SQL 中提供了很多数据库函数,如数学函数,字符串函数,日期函数等。使用 SQL 内建的函数,应该比我们取到数据后自行计算速度快。数学函数SQL 标准中只有四个函数,但是主流数据库系统提供了大量常用的数学函数。求绝对值ABS() 函数用来返回一个数值的绝对值SELECT FWeight - 50,ABS(FWeight - 50) FROM PERSON;求指数POWER()函数是用来计算
2016-02-04 16:45:46
291
原创 博客抽了
不知道你们有没有遇到过,可我刚写的 RunLoop 丢了! 感觉不会再爱了,bug 应该出现在,我打开了两个 MarkDown 编辑页面,然后关了一个。。。然后就不见了 T_T T_T T_T 悲伤辣么大
2016-01-27 17:16:35
342
转载 LeanCloud消息格式
消息格式消息按照格式分为 AVIMTextMessage 文本消息 AVIMImageMessage 图像消息 AVIMAudioMessage 音频消息 AVIMVideoMessage 视频消息 AVIMFileMessage 文件消息 AVIMLocationMessage 位置消息
2016-01-27 14:27:53
507
原创 iOS 应用崩溃分析
分类一般来说,iOS 应用的崩溃分为几种 1.应用 bug 崩溃,出现 Object-C 的崩溃 如数组越界,selector 方法没有实现,这时候系统会抛出 NSException 的异常和堆栈使用情况,这时候比较容易定位出错位置。可以通过注册系统 API UncaughtNSException 处理函数进行捕捉 2.应用违反系统规则 如 WatchDog 超时,用户强制退出,低内存终止,
2016-01-19 12:25:58
361
原创 LeanCloud 调研
导入SDK我们项目使用了cocoaPos,AVOS支持pod导入,编辑Podfile文件:pod 'AVOSCloud'#使用聊天组件的话引入IM模块pod 'AVOSCloudIM'update 即可App内注册使用我们在AVOS平台上注册App时生成的App Id 和 App Key,在我们的程序内部注册:[AVOSCloud setApplicationId:AVOSApplication
2016-01-18 14:36:46
1028
原创 React入门 (一) 基本语法和功能介绍
开个贴,学习React Native现在有各种各样的web-native解决方案,是时候找到一个合适的,facebook发布的React Native ,现在好像被挺多团队推崇的,包括天猫,百度等(小道传闻~),so,学习吧,既然眼观没有其他人独到,不如站在巨人肩膀上~React 入门首先我们要熟悉使用React,我理解为像是jQuery那样的JavaScript框架,说道JavaScript,许多
2016-01-04 16:32:24
2902
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人