<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[datacloud的专栏]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/datacloud</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; datacloud]]></copyright><item><title><![CDATA[osx程序自启动]]></title><link>https://blog.youkuaiyun.com/datacloud/article/details/7724094</link><guid>https://blog.youkuaiyun.com/datacloud/article/details/7724094</guid><author>datacloud</author><pubDate>Wed, 26 Nov 2014 13:53:54 +0800</pubDate><description><![CDATA[两个术语：

启动项（startup item）：在用户登录前就运行的item。登录项（login item）：在用户登录后运行的item。每个用户都有一个不同的登录项集合。
这里介绍一下登录项。

一直以来，很多开发人员希望他们的程序能在用户登录时自动运行。但长久以来，并没有相关的API实现这一点，除了一些破解手法。要做到这一点，还依赖于OS的版本。

对于10.5或更高版本，可以]]></description><category></category></item><item><title><![CDATA[Xcode的代码管理系统]]></title><link>https://blog.youkuaiyun.com/datacloud/article/details/9034787</link><guid>https://blog.youkuaiyun.com/datacloud/article/details/9034787</guid><author>datacloud</author><pubDate>Wed, 26 Nov 2014 13:49:44 +0800</pubDate><description><![CDATA[Xcode有内置的代码管理系统（SCM），可以是使用Git和Subversion这两种主流的版本管理系统。

1.      GIT和SVN的不同
在多数情况下，两者之间的最大不同是术语的称谓。例如，Git用户clones，对应Subversion的用户checkout一个副本；Git的用户pulls，对应Subversion的用户updates（和可能的merges）。Git的用户stag]]></description><category></category></item><item><title><![CDATA[Notification和Delegates]]></title><link>https://blog.youkuaiyun.com/datacloud/article/details/9112749</link><guid>https://blog.youkuaiyun.com/datacloud/article/details/9112749</guid><author>datacloud</author><pubDate>Wed, 26 Nov 2014 13:49:27 +0800</pubDate><description><![CDATA[看这里
Notification

通知（Notifications）提供了一种从任何地方向任何地方广播消息的方法。Objective-C中的NSNotification类就能实现这样的功能。严格地说，它不是语言的一部分，二是Foundation框架的一部分。但是，你在使用Objective-C时，几乎不可能不使用Foundation。NSNotification的实例通过一个NSNotif]]></description><category></category></item><item><title><![CDATA[daemons和services（守护进程和服务）]]></title><link>https://blog.youkuaiyun.com/datacloud/article/details/7327364</link><guid>https://blog.youkuaiyun.com/datacloud/article/details/7327364</guid><author>datacloud</author><pubDate>Wed, 26 Nov 2014 13:48:03 +0800</pubDate><description><![CDATA[Daemons and Services Programming Guide

一、关于Daemons和Services
大多数不用用户交互的任务都会通过一个运行在后台的进程高效处理。你可以将daemon或service用到：

提供服务器功能，例如服务web页。协同访问共享资源，如数据库。为前台应用程序工作，例如文件系统访问。

注意：该文档以前的标题是“系统启动编程指南”。]]></description><category></category></item><item><title><![CDATA[键盘事件和NSTimer]]></title><link>https://blog.youkuaiyun.com/datacloud/article/details/7324890</link><guid>https://blog.youkuaiyun.com/datacloud/article/details/7324890</guid><author>datacloud</author><pubDate>Wed, 26 Nov 2014 13:47:04 +0800</pubDate><description><![CDATA[一、键盘事件
当用户敲击键盘时会发送什么相应事件？首先，windows管理器捕获该事件并转发给活动的应用。该活动应用将该键盘事件转发给键窗口。键窗口转发事件给“活动的”视图。那么那一个视图是活动的呢？每个窗口都有一个称之为firstResponder的outlet，指向windows的一个视图。该视图是该window的一个“活动”视图。例如，当你点击一个文本域，它将称为那个窗口的firstRes]]></description><category></category></item><item><title><![CDATA[MAC OS X系统]]></title><link>https://blog.youkuaiyun.com/datacloud/article/details/7206605</link><guid>https://blog.youkuaiyun.com/datacloud/article/details/7206605</guid><author>datacloud</author><pubDate>Wed, 26 Nov 2014 13:45:23 +0800</pubDate><description><![CDATA[VM映射和入口表
虚拟内存（VM）映射是任务地址空间的实际表示。每个任务都有自己的VM映射。映射是由vm_map结构来表示的。线程没有所谓的映射，因为它们共享其所属的任务的VM映射。
VM映射是一段内存区域的双向链接列表，这段内存区域被映射到了进程地址空间。每个内存区域都是一段虚拟连续内存地址（不必是连续的物理内存），用一个开始地址和结束地址来描述，和其他的元数据一样，如保护标志，可以是可读、]]></description><category></category></item><item><title><![CDATA[处理mac os x下的幽灵文件]]></title><link>https://blog.youkuaiyun.com/datacloud/article/details/8515719</link><guid>https://blog.youkuaiyun.com/datacloud/article/details/8515719</guid><author>datacloud</author><pubDate>Wed, 26 Nov 2014 13:42:57 +0800</pubDate><description><![CDATA[http://reliablybroken.com/b/2012/08/how-to-fix-ghost-files-in-the-finder/
有些文件打不开，提示“文件在使用中，无法打开”
原因：通过usb设备复制时未能正确关闭，导致文件的元数据属性被打上了特殊标记，如kMDItemFSTypeCode==brok && kMDItemFSCreatorCode==MACS
解决：输入]]></description><category></category></item><item><title><![CDATA[mac键盘记录]]></title><link>https://blog.youkuaiyun.com/datacloud/article/details/8513633</link><guid>https://blog.youkuaiyun.com/datacloud/article/details/8513633</guid><author>datacloud</author><pubDate>Wed, 26 Nov 2014 13:42:16 +0800</pubDate><description><![CDATA[1、现状
很多商业软件。
几个开源软件：
logkext：http://code.google.com/p/logkext/
keylogger：https://github.com/Dannvix/keylogger-osx
商软的功能：
    Record keystrokes typed except passwords

记录键盘敲击（密码除外）定时截屏记录访问过的网站、]]></description><category></category></item><item><title><![CDATA[osx里的后台进程]]></title><link>https://blog.youkuaiyun.com/datacloud/article/details/7052768</link><guid>https://blog.youkuaiyun.com/datacloud/article/details/7052768</guid><author>datacloud</author><pubDate>Wed, 26 Nov 2014 13:39:33 +0800</pubDate><description><![CDATA[后台进程就是Daemon，Daemon就是一个无界面的程序。

另需要一个plist描述文件来描述这个daemon的path和参数，将此文件放到~/Library/LaunchAgents/下

启动deamon：launchctl load ~/Library/LaunchAgent/com.yourplist

停止deamon：launchctl unload ~/Library]]></description><category></category></item><item><title><![CDATA[mach-o的执行]]></title><link>https://blog.youkuaiyun.com/datacloud/article/details/8812655</link><guid>https://blog.youkuaiyun.com/datacloud/article/details/8812655</guid><author>datacloud</author><pubDate>Wed, 17 Apr 2013 10:29:19 +0800</pubDate><description><![CDATA[要想通过BSD系统调用来创建进程，父进程必须调用fork系统调用。fork调用会创建一个父进程副本，然后将新进程（子进程）的ID返回给父进程。父进程和新进程都会从fork调用处继续执行，唯一的区别是fork为父进程返回新进程ID，而为新进程返回零。（如果新进程创建失败，fork函数将返回-1给父进程，并设置errno给特定的错误值。）

要运行不同的可执行体，父进程必须调用execve系统调用]]></description><category></category></item><item><title><![CDATA[Mac OS X地址簿编程指南]]></title><link>https://blog.youkuaiyun.com/datacloud/article/details/7704384</link><guid>https://blog.youkuaiyun.com/datacloud/article/details/7704384</guid><author>datacloud</author><pubDate>Sun, 01 Jul 2012 08:39:15 +0800</pubDate><description><![CDATA[Address Book Programming Guide for Mac OS X
一、简介
地址簿是一种围绕联系人和组信息中心数据、可以查看这些信息应用程序、以及在程序中访问这些信息的编程接口的技术。数据库包含了诸如用户名、街道、email地址、电话号码和分发列表等信息。使用地址簿框架的地址簿可以和其他程序共享这个联系人信息，包括Mail和iChat，或者对其进行扩展以包括应用相关的信息]]></description><category></category></item><item><title><![CDATA[选择器（Selectors）]]></title><link>https://blog.youkuaiyun.com/datacloud/article/details/7276043</link><guid>https://blog.youkuaiyun.com/datacloud/article/details/7276043</guid><author>datacloud</author><pubDate>Mon, 20 Feb 2012 19:04:09 +0800</pubDate><description><![CDATA[《ObjC.pdf》
在Objective－C中，选择器selector有两种含义。其一是当在源代码中向一个对象发送消息时，用它来引用一个方法的名字；其二是当源代码编译过后，用它来引用取代名字的唯一标识符。编译后的选择器类型为SEL。所有相同名字的方法都有相同的选择器。你可以使用选择器来调用对象的方法——这为在Cocoa中实现target-action设计模式打下了基础。
方法和选择器
为了]]></description><category></category></item><item><title><![CDATA[Objective-C中的self和super]]></title><link>https://blog.youkuaiyun.com/datacloud/article/details/7275170</link><guid>https://blog.youkuaiyun.com/datacloud/article/details/7275170</guid><author>datacloud</author><pubDate>Mon, 20 Feb 2012 15:15:07 +0800</pubDate><description><![CDATA[《ObjC.pdf》

发送消息给self和super

Objective C提供了两个保留字self和super，用于在方法定义中引用执行该方法的对象。例如，假设你定义了一个方法reposition，用来修改它所处理的某个对象的坐标，这时可以调用setOrigin::方法来完成修改。要实现这个目标，要做的工作就是将setOrigin::消息发送给一个对象，这个对象与reposition]]></description><category></category></item><item><title><![CDATA[Objective-C 入门]]></title><link>https://blog.youkuaiyun.com/datacloud/article/details/7202675</link><guid>https://blog.youkuaiyun.com/datacloud/article/details/7202675</guid><author>datacloud</author><pubDate>Wed, 15 Feb 2012 19:01:01 +0800</pubDate><description><![CDATA[《Cocoa programming for mac os X 4th - charpter 3 Objectiv-C》
 
曾几何时，一位名叫BradCox的人认为是时候为世界提出一种更为模块化的编程风格了。在当时，C已经是一种很流行的语言，同时Smalltalk在当时也是一种优雅的无类型的面向对象语言。Brad Cox便以C语言为基础，在其中增加了类似Smalltalk语言的类和消息发送机]]></description><category></category></item><item><title><![CDATA[网络访问]]></title><link>https://blog.youkuaiyun.com/datacloud/article/details/7050202</link><guid>https://blog.youkuaiyun.com/datacloud/article/details/7050202</guid><author>datacloud</author><pubDate>Thu, 09 Feb 2012 08:33:13 +0800</pubDate><description><![CDATA[《OBjective C 2.0 Phrasebook - 17 network access》
开发跨平台网络可知应用程序的标准方法是使用Berkeley套接字API。它也是开发TCP/IP的一部分，并且是协议无关的。大多数语言都对这个API进行了实现。在Objective-C中，你仍然可以尽情使用C语言，它提供了所有底层接口的能力。但是大多数时候，这么做往往事倍功半。Foundation框架]]></description><category></category></item><item><title><![CDATA[访问目录和文件]]></title><link>https://blog.youkuaiyun.com/datacloud/article/details/7042832</link><guid>https://blog.youkuaiyun.com/datacloud/article/details/7042832</guid><author>datacloud</author><pubDate>Sun, 11 Dec 2011 22:43:33 +0800</pubDate><description><![CDATA[《Objective C Phrasebook 2nd - 13 Accessing Directories and Files》
 
当使用AppKit时，对大多数文件系统相关的任务来说有两种选择：一是使用NSFileManager类，它属于Foundation框架，提供了很多操作文件和目录的底层方法。另外一个是使用NSWorkspace类，来自Application Kit，提供了更多的抽]]></description><category></category></item><item><title><![CDATA[ASIHTTPRequest]]></title><link>https://blog.youkuaiyun.com/datacloud/article/details/7055832</link><guid>https://blog.youkuaiyun.com/datacloud/article/details/7055832</guid><author>datacloud</author><pubDate>Sun, 11 Dec 2011 22:42:12 +0800</pubDate><description><![CDATA[一、如何使用ASIHTTPRequest
1、什么时ASIHTTPRequest
ASIHTTPRequest是对CFNetwork API的一个封装，使与web服务器的通信变得简单。它比较适合执行基本的HTTP请求，以及与基于REST（GET／POST／PUT／DELETE）的服务进行交互。其ASIFormDataRequest子类使得使用multipart/form-data提交POST数]]></description><category></category></item><item><title><![CDATA[Xcode 4使用小技巧]]></title><link>https://blog.youkuaiyun.com/datacloud/article/details/7061921</link><guid>https://blog.youkuaiyun.com/datacloud/article/details/7061921</guid><author>datacloud</author><pubDate>Sun, 11 Dec 2011 22:41:28 +0800</pubDate><description><![CDATA[1、在项目中关闭 ARC 功能，在项目属性中将Object-C Automatic Reference Counting设置为NO即可。否则在编译时，会对 release ,retainCount, retain 等内存相关操作在编译时出现红色警告。
2、有时候，工程导航栏不显示任何东西，只显示“no filter results”，即使关闭重启Xcode也无用。解决方法：在导航栏下方的搜索框中]]></description><category></category></item></channel></rss>