摘要:有没有写SDK或者要将一些常用的工具类做成Framework的经历? 你或许自己写脚本完成了这项工作,相信也有很多的人使用iOS-Universal-Framework,随着xCode6的发布,相信小伙伴们已经都知道了,xCode6支持做Framework了. 同时iOS-Universal-Fra...
阅读全文
摘要:调试的时候打断点太慢,所以输出log就是一个很好的选择了。断点,一行一行的按,太麻烦了。从log里一条一条的看,很快就可以找到到哪个函数的哪个地方这个代码就没执行了。这里不详细讨论调试技巧的事。不过大概就是这个样子。但是,输出的log你只想在调试的时候看。在正式发布的版本里,那些东西你给谁看,而且语...
阅读全文
摘要:Objective-C的构造函数吧,就最后return一个self。里头你要初始化了什么都可以。在Swift的init函数里把super.init放在前面,然后再初始化你代码里的东西就会报错了。所以:init(frame: NSRect) { super.init(frame: frame) ...
阅读全文
摘要:用过Options这个东西的人都知道,几个竖线就把这些值都和到一起了。比如:+ (NSStringDrawingOptions)combine{ return NSStringDrawingTruncatesLastVisibleLine | NSStringDrawin...
阅读全文
摘要:在Objective-C里,为了让代码组织的有序也方便用control+6的快捷键在Xcode中查找,所以出现了一个大家都很熟悉的东东。这就是:#prama mark。#pragma mark但是,这个东西在Swift里对应的是什么呢?首先简单了很多,不用再写那么多的字母了。。。这些landmark...
阅读全文
摘要:苹果那文档写了一大堆也没有好好的写一下可选值(optional)这个东西。就是在有一个“Optional Chaining”的章节,但是也不是很充分的说明。最后找了半天在“the basics”里墨迹了几句。如果你没找到optional这个东西的话,那你可能也错过了一个很重要的东西,非optiona...
阅读全文
摘要:iOS8开放了很多API,包括HomeKit、HealthKit什么的。我们这里要说的是其中之一的Touch ID验证。以前用app保护用户的隐私内容,只能设定和输入密码。眼看着只能是iPhone本身用Touch ID方便酷炫的解锁而自己的app不能。实在让人捉急。现在咱也可以酷炫一把了。当用户打开...
阅读全文
摘要:一、程序名国际化1、首先添加应用对多语言支持的国际化文件点击工程根目录,然后选择PROJECT下的项目,然后选择Info选项卡,在底部可以看到Localizations,点击“+”号,可以添加国际化文件,例如添加一个简体中文Chinese(Simplified),弹出对话框后点击确定,此时在Supp...
阅读全文
摘要:大家都知道Push Notification,这个东西需要联网才可以用。iOS4起,苹果引入了一种可以在设备内部引发的notification。不需要复杂的服务器编程,或其他复杂的配置。这个技术就是Local Notification。Local notificaton可以在用户设定里定时触发。甚至...
阅读全文
摘要:如果你已经做了一款超牛X的APP。你也许还有一件是需要操心。APP够好了,怎么盈利呢?你可以对下载你的APP的用户收费。也可以完全的免费,然后在APP里放广告来实现盈利。现在来说,除非一款APP真的是非用不可的,或者很有名,在要不就是很好玩的游戏。否则,用户一般是不会付费的。明智的选择是免费,集成广...
阅读全文
摘要:在WWDC的演示中就可以看出来Swift这个更接近于脚本的语言可以用更少的代码量完成和OC同样的功能。但是对于像我一样在战争中学习战争的同学们来说,天天抱着笨Swift Programming Language Reference之类的大部头看不实际。毕竟还是要养家糊口的。而且,那么1000+页内容...
阅读全文
摘要:低功耗蓝牙技术现在几乎是只能手机的标配。随着这一技术的发展,苹果在2013年WWDC大会上,苹果推出iBeacon技术。该技术允许开发人员开发能够使用iBeacon硬件传感器的iOS应用程序,来为相应的应用程序提供更加精准的位置信息。2014年WWDC大会上,苹果表示,对iBeacon技术进行了改善...
阅读全文
摘要:在WWDC大会中发布了Swift让人眼前一亮。终于加了很多的现代编程语言该有的东西。很早年以前玩C#3.0+的时候这些差不多类似的已经用的烂熟的东西终于一点一点的在看Swift Programming Language的时候再唤醒。Swift较之于OC(Objective-C)在愈发上几乎是一门新的...
阅读全文
摘要:试过ObjC的regkit这个框架。也用过内置的正则表达式验证。最后发现有个非常简单的方法就可以做到验证正则表达式。那就是NSPredicte这个类提供的方法。这里有验证邮箱地址的正则为例:NSString *emailRegEx = @"[A-Z0-9a-z._%+-]+@[A-Za-z0-9.-...
阅读全文
摘要:NSPredicate编写软件时,经常需要获取一个对象集合,然后删除不满足条件的对象,保留符合条件的对象,从而提供一些有意义的对象。Cocoa提供了一个名为NSPredicate的类,他用于指定过滤器的条件。可以创建NSPredicate对象,通过该对象准确地描述所需的条件,对每个对象通过谓词进行筛...
阅读全文
摘要:iOS Programming Recipe 6: Creating a custom UIView using a NibJANUARY 7, 2013BYMIKETT12 COMMENTSCreating a custom UIView using a NibAssumptionsYou are...
阅读全文
摘要:Short answerInstead of accessingselfdirectly, you should access it indirectly, from a reference that will not be retained.If you're not using Automatic Reference Counting (ARC), you can do this:__block MyDataProcessor*dp = self;self.progressBlock =^(CGFloat percentComplete){[dp.delegate myAPI:dp
阅读全文
摘要:持久化(Persistence)持久化(Persistence)意思就是当你退出app的时候它还会存在。NSUserDefaults就是一个非常简单的持久化方案,不过这有限制,它只能是很小的东西,通常是些用户选项。如何把那些大数据的东西持久化?第一个方法,把东西持久化的第一个简单的方式有点像用NSUserDefaults里的property list来实现的进化版,property list是我们自定义的一个概念,是NSArray、NSDictionary、NSNumber、NSString、 NSDate和NSData的组合。所有以上这些都有API可以用来保存,NSUserDefaults也
阅读全文
摘要:这几天在做一个ios的小项目,项目中需要对数据进行基本的增删改查操作。于是就想用一把CoreData。但在创建项目初期,没有包含进CoreData。于是就在已建好的项目中加入CoreData。由于第一次用CoreData,各方面还不是很熟悉,在网上爬文,找到了一篇关于这方面的文章(http://www.iteye.com/topic/1017633)。于是,自己在这篇文章的基础上经过一天的研究,特把自己出错的地方进行简单的总结。并把步骤完善一下。1.如果想在已建好的项目中加入CoreData,首先需要引入CoreData FrameWork。这里需要先点击target,然后再点击Build P
阅读全文