iOS笔记(18)

Core Data (一)

恩,用Core Data也有一段时间了。大大小小的坑也都坑过了。重来没有认真的记录一次。这次需要好好的理一理Core Data。就当一次绝好的机会记录下来。也为了自己加深认识。

为什么要用Core Data

CoreData的学习是需要一定成本的。以至于我认识的人很少在用,大家要不就是用一个FMDB。或者做的App是一个已有的Web的延伸,数据直接用Web端的Api取回来就好了。

我们要用Core Data的理由有以下几点:

  1. Core Data是对底层存储的一次封装。封装了以后就变成ORM的框架。这样就变成操作对象。Core Data自己去进行数据的保存。
  2. 使用Core Data而不是FMDB,让整个程序架构更加的面向对象。
  3. Core Data仅仅使用了Objective-C和Core Foundation,你不必去加入一些第三方的库。
  4. Core Data是Apple的原生技术。每年的WWDC都能看到新特性的加入和讲授。
  5. Core Data支持iCloud。而使用iCloud的App。Apple推荐的可能性增加。
  6. 有了iCloud为以后Apple的全平台数据共享打下基础

所以,没有理由拒绝使用Core Data做为你App的持久化。Core Data应该是一个跟Apple混的第一选择。

Read more

Mac笔记 (1)

ssh远程登录Mac OS X

近一年抱了Apple大腿之后,各种表弟、师兄、朋友陆续也开始抱Apple大腿。难免遇到各种问题,这个时候在QQ交流效率低下,简直不可忍受。也不知大腾讯啥时候支持一下QQ for Mac的远程协助。这样有时候也可以帮助一下在家的老爸老妈解决一些PC上的问题。大神们绕道无鄙视。OS X乃纯Unix血统。教科书上都写了*nix系统可以ssh登录过去搞定一切。就想着可以用ssh来解决问题。无奈网络基础确实是挂课的水平曾经尝试过一次没有成功。这次又再次遇到远程协助的问题就好好Google了一次。研究了好一会儿终于搞定,在此记录。

Read more

iOS笔记(17)

#iOS读写文件

由于iOS App的机制和限定,我们在App里面的权限就仅限于App内部。这个打包好的内部称为沙箱。沙箱有利有弊。我觉得这个世界上没有绝对的好坏。虽然沙箱的作用限制了一些功能的实现。但是也确保了iPhone的安全机制。对于普通用户来说我觉得的利大于弊的。(MAS上架的软件也接受这一约束)

第一步 路径

不管是读文件还是写文件我们都要需要知道文件的位置。这个位置在iOS里面就是沙箱的Document文件夹的位置。关于沙箱里面各个文件夹的功能和作用。Apple的某文档里面写的很清楚建议Google以后详细查看(懒得去找来贴了)。获取代码如下:

1
2
NSArray  *paths              = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];

NSDocumentDirectoryz这个参数你点过去可以找到一堆类似的定义比如常用的NSLibraryDirectory,NSApplicationDirectory。这样就可以直接获取到对应的文件夹路径。其他的你照抄就好。想知道意思就点过去看呗。其实看变量名也可以猜测一二。

1
NSString *filePath = [documentsDirectory stringByAppendingString:@"/hello.txt"];

然后我们加上我们文件名字构成一个完整的路径。注意文件名字前有一个/。

这样我们就获得一个文件路径了。

Read more

iOS笔记(16)

配置自己的CocoaPods库

默认安装的cocoapods确实很好用,可是毕竟自己会写一些库和修改一些第三方库来用。所幸cocoapods确实是一个神器。他可以定义自己的库来用。
如何安装Cocoapods,请参考这篇

Read more

iOS笔记 (15)

Mogenerator的初级使用

什么是Mogenerator

最近在用Core Data来进行开发。Core Data其实封装的很好了。把存储底层都屏蔽了(sqlite,xml,内存)。不管是用那种方式存储下来。用Core Data都是在操作对象了。但是Core Data一套东西下来,单是学习就学习的泪流满面。天资有限,只能找一些看上去更简单的第三方类库来使用。

github上找了很久,最后在使用的是MagicalRecord。不为其他,只是用起来很爽。特别是目前升级到了2.1版本以后,保存的方法名字不那么逆天了。更是好用多了。

Mogenerator是什么东西呢。

它漂亮的主页上是这样写的:

mogenerator为你定义了的Core Data生成默认的数据类。与xCode不一样的是(xCode一个Entity只生成一个NSManagedObject的子类),mogenerator会为每一个Entity生成两个类。一个为机器准备,一个为人类准备。为机器准备的类一直去匹配data model。为人类准备的类就给你轻松愉快的去修改和保存。

Read more