- 浏览: 82539 次
- 性别:
- 来自: 北京
最新评论
-
一席青菜:
好写法,但block执行结束要只为nil
【无限互联】iOS开发block用法之UIAlertView控件的修改
文章列表
在上一章里面,笔者向大家介绍了在Objective-C里面的几个非常重要的概念, 简单的说就是SEL,Class和IMP。我们知道Objective-C是C语言的扩展,有了这3个概念还有我们以前讲过的继承和封装的概念,Objective-C发生了翻天覆地的变化,既兼容C语言的高效特性又实现了面向对象的功能。
Objective-C从本质上来说,还是C语言的。那么内部究竟是怎样实现SEL,Class和IMP,还有封装和继承的?为了解答这个问题,笔者决定在本章向大家概要的介绍一下Objective-C的最主要的一个类,NSObject。
不过说实在话,如果同学们觉得本章的内容比较晦涩难懂 ...
源地址:http://www.cnblogs.com/yaski/archive/2009/04/05/1429735.html
我们在实际上的编程过程中,也许会遇到这样的场景,那就是我们在写程序的时候不能确切的知道我们需要使用什么类,使用这个类的什么方法。在这个时候,我们需 ...
原文地址:http://blog.securemacprogramming.com/2013/12/by-your-_cmd/
感谢翻译小组成员wingpan热心翻译。本篇文章是我们每周推荐优秀国外的技术类文章的其中一篇。如果您有不错的原创或译文,欢迎提交给我们,更欢迎其他朋友加入我们的翻译小组(联系qq:2408167315)。
本文是我在 Alt Tech Talks: London 上关于 Objective-C runtime的演讲总结,如果你对Objective-C runtime感兴趣的话,应该看看这篇文章,特别是文章中的链接,一定会受益匪浅。
09年的一篇文章,比较深入地阐述了KVO的内部实现。
KVO是实现Cocoa Bindings的基础,它提供了一种方法,当某个属性改变时,相应的objects会被通知到。在其他语言中,这种观察者模式通常需要单独实现,而在Objective-C中,通常 ...
人的能量
来源: 关二爷Morgan的日志
从今年春天开始,种种原因格外地开始关心一些本原的哲学问题,虽然之前上学时由于种种不顺,经常去接触基督教,教堂也是周末常去放松一下的地方,可是骨子里的血液告诉我 ...
这是一篇译文,原文在此,上一篇文章就是受这篇文章启发,这次干脆都翻译过来。
过去的几年中涌现了大量的Objective-C开发者。有些是从动态语言转过来的,比如Ruby或Python,有些是从强类型语言转过来的,如Java或C#,当然也有直接以Objective-C作为入门语言的。也就是说有很大一部分开发者都没有使用Objective-C太长时间。当你接触一门新语言时,更多地会关注基础知识,如语法和特性等。但通常有一些更高级的,更鲜为人知又有强大功能的特性等待你去开拓。
这篇文章主要是来领略下Objective-C的运行时(runtime),同时解释是什么让Objective- ...
1. XCode 4打开时,自动加载上次的工程,需要较长时间。
这是因为Lion提供了新功能让应用程序恢复上次关闭时的状态。如果仅是临时不希望下去打开时不要打开现在使用的项目,可以在退出使用CMD+Q+OPTION代替CMD+Q。
如果默认不希望再打开,就可以使用下面的指令:
defaults write com.apple.Xcode ApplePersistenceIgnoreState YES
*对其它程序,只要改变中间的App ID就可以了。
2. 在Mac Lion下使用XCode 4时,调试大型 ...
CocoaAsyncSocket支持tcp和udp。其中:
AsyncSocket类是支持TCP的
AsyncUdpSocket是支持UDP的
AsyncSocket是封装了CFSocket和CFSteam的TCP/IP socket网络库。它提供了异步操作,本地cocoa类的基于delegate的完整支持。主要有以下特性:
队列的非阻塞的读和写,而且可选超时。你可以调用它读取和写入,它会当完成后告知你自动的socket接收。如果你调用它接收连接,它将为每个连接启动新的实例,当然,也可以立即关闭这些连接
虽然大家都不愿意看到程序崩溃,但可能崩溃是每个应用必须面对的现实,既然崩溃已经发生,无法阻挡了,那我们就让它崩也崩得淡定点吧。
IOS SDK中提供了一个现成的函数 NSSetUncaughtExceptionHandler 用来做异常处理,但功能非常有限,而引起崩溃的大多数原因如:内存访问错误,重复释放等错误就无能为力了,因为这种错误它抛出的是Signal,所以必须 要专门做Signal处理。在didFinishLaunchingWithOptions 中,加入
代码如下:
Source code
signal(SIGABRT, MySignalHandler);
开机, 启动时按“cmd+S”。这时,你会进入Single User Model,出现像DOS一样的提示符 #root>。请在#root>下 输入 (注意空格, 大小写)
fsck -y
mount -uaw /
rm /var/db/.AppleSetupDone
reboot
紧接着,苹果电脑会重启 ,并且在开机后出现新装机时的欢迎界面。你需要像第一次打开苹果电脑一样, 重新建立一个新的管理员账号(数据会保留)。当开机完毕之后,在新的管理员下请打开 系统预制 - 账户。打开最下面的锁, 当跳出密码框时, 输入新的管理员帐号密码。这时,你 ...
在Windows环境中,我们一般使用TortoiseSVN来搭建svn环境。在Mac环境下,由于Mac自带了svn的服务器端和客户端功能,所以我们可以在不装任何第三方软件的前提下使用svn功能,不过还需做一下简单的配置。
我们首先来看下,如何在Mac环境下搭建svn服务器端环境。
回到顶部
一、创建代码仓库,用来存储客户端所上传的代码
我先在/User/apple目录下新建一个svn目录,以后可以在svn目录下创建多个仓库目录
如果要统计ios开发代码,包括头文件的,终端命令进入项目目录下,命令如下
find . -name "*.m" -or -name "*.h" |xargs wc -l
列出每个文件的行数
find . -name "*.m" -or -name "*.h" |xargs grep -v "^$"|wc -l
列出代码行数总和
grep -v "^$"是去掉空行
注释也统计在代码量之内,毕竟也一个字一个字码出来的
如果译错,感谢指出。
英文原文地址:https://developer.apple.com/library/ios/qa/qa1702/_index.html#//apple_ref/doc/uid/DTS40010192为了完成实时的捕获,首先初始化一个AVCaputureSession对象用于创建一个捕获会话(session),我们可以使用AVCaptureSession对象将AV输入设备的数据流以另一种形式转换到输出。然后,我们初始化一个AVCaptureDeviceInput对象,以创建一个输入数据源,该数据源为捕获会话(session)提供视频数据,再调用addInput方法将 ...
一.基本知识
在实际的编程过程中,通常会把一些公用函数制成函数库,供其它程序使用,一则提搞了代码的复用;二则提搞了核心技术的保密程度。所以在实际的项目开发中,经常会使用到函数库,函数库分为静态库和动态库两种。和多数人所熟悉的动态语言和静态语言一样,这里的所谓静态和动态是相对编译期和运行期的:静态库在程序编译时会被链接到目标代码中,程序运行时将不再需要改静态库;而动态库在程序编译时并不会被链接到目标代码中,只是在程序运行时才被载入,因为在程序运行期间还需要动态库的存在。
对iPhone平台来说,iPhone官方只支持静态库联编,因此下面就介绍下iPhone中静态库的用法。
转自:http://www.cnblogs.com/kesalin/archive/2011/12/23/cocoa_ocunit_ocmock.html
XCode 内置了 OCUnit 单元测试框架,但目前最好用的测试框架应该是 GHUnit。通过 GHUnit + OCMock 组合,我们可以在 iOS 下进行较强大的单元测试功能。本文将演示如何在 XCode 4.2 下使用 OCUnit, GHUnit 和 OCMock 进行单元测试。
OCUnit
在 XCode 下新建一个 OCUnitProject 工程,选中 Include Unit Tests 选择框,
OC ...