摘要: Xcode 5.1默认使用ARC对于手动管理内存,编译报错:garbage collection is no longer supported解决方案:打开程序后 当弹出提示框时,点击“Not Now”,然后去 "build settings" 在最下面 删除 "GCC_ENABLE_OBJC_GC" 即可。此时就可选择ARC或者non-ARC了。 阅读全文
posted @ 2014-03-12 17:07 倔强的黑苹果 阅读(2542) 评论(0) 推荐(0) 编辑
摘要: 目前ios的指令集有以下几种:armv6iPhoneiPhone2iPhone3G第一代和第二代iPod Toucharmv7iPhone4iPhone4Sarmv7siPhone5iPhone5Carm64iPhone5S机器对指令集的支持是向下兼容的,因此armv7的指令集是可以运行在iphone5S的,只是效率没那么高而已~Architecture :指你想支持的指令集。Valid architectures : 指即将编译的指令集。Build Active Architecture Only : 只是否只编译当前适用的指令集。PS:选arm64时需要最低支持5.1.1:正题:xcode 阅读全文
posted @ 2014-03-12 10:30 倔强的黑苹果 阅读(1243) 评论(0) 推荐(1) 编辑
摘要: iOS项目的目录结构和开发流程网上相关的资源不多,开源的且质量还不错的iOS项目也是少之又少,最近正好跟同事合作了一个iOS项目,来说说自己的一些想法。目录结构AppDelegateModelsMacroGeneralHelpersVendorsSectionsResources一个合理的目录结构首先应该是清晰的,让人一眼看上去就能大概了解目录的职责,且容易应对新的变化。AppDelegate这个目录下放的是AppDelegate.h(.m)文件,是整个应用的入口文件,所以单独拿出来。Models这个目录下放一些与数据相关的Model文件,里面大概是这样:Models |- BaseMo... 阅读全文
posted @ 2014-03-03 17:27 倔强的黑苹果 阅读(5197) 评论(1) 推荐(1) 编辑
摘要: ABAddressBookRef addressBook = ABAddressBookCreate();CFArrayRef results = ABAddressBookCopyArrayOfAllPeople(addressBook);for(int i = 0; i < CFArrayGetCount(results); i++){ABRecordRef person = CFArrayGetValueAtIndex(results, i);//读取firstnameNSString *personName = (NSString*)ABRecordCopyValue(perso 阅读全文
posted @ 2014-03-03 15:45 倔强的黑苹果 阅读(221) 评论(0) 推荐(0) 编辑
摘要: 每个ios开发者对loadView和viewDidLoad肯定都很熟悉,虽然这两个函数使用上真的是非常简单,但是和类似的initWithNibName/awakeFromNib/initWithCoder放在一起还是非常容易让人混淆的.昨天看了下苹果官方的相关文档以及几篇相关内容的网页(一 二 三),其实这个内容以前也看过,似乎也搞清楚了,可还是忘了.好急性不如烂笔头,这次一定要好好记下来.大前提是UIViewController有一个UIView.同时,需要厘清两个概念,创建一个类和实例化一个类.在XCode中创建一个类和实例化一个类很容易区分,但是在IB(InterfaceBuilder. 阅读全文
posted @ 2013-11-19 10:36 倔强的黑苹果 阅读(1040) 评论(0) 推荐(0) 编辑
摘要: CGContext又叫图形上下文,相当于一块画布,以堆栈形式存放,只有在当前 context上绘图才有效。iOS有分多种图形上下文,其中UIView自带提供的在drawRect:方法中通过 UIGraphicsGetCurrentContext获取,还有专门为图片处理的context,UIGraphicsBeginImageContext函数生成,还有pdf的context等等。1.一共有3种使用context的场景,其中每种场景都有2种方法绘图场景1://通过UIView的子类的drawRect:在上下文中绘制,该方法系统已准备好一个cgcontext,并放置在上下文栈顶,rect形参就是c 阅读全文
posted @ 2013-11-15 10:38 倔强的黑苹果 阅读(6920) 评论(0) 推荐(2) 编辑
摘要: objective-c中import与@class的说明objective-c中,当一个类使用到另一个类时,并且在类的头文件中需要创建被引用的指针时,如下面代码:A.h文件1 #import "B.h"2 @interface A : NSObject {3 4 B *b;5 }6 7 @end为了简单起见:A类是引用类,B类是被引用类,这里先不考虑A类的实现文件。通常引用一个类有两种办法: 一种是通过#import方式引入;另一种是通过@class引入;这两种的方式的区别在于:1、#import方式会包含被引用类的所有信息,包括被引用类的变量和方法;@class方式只是告 阅读全文
posted @ 2013-02-24 00:13 倔强的黑苹果 阅读(221) 评论(0) 推荐(0) 编辑
摘要: 有过编程经验的人,基本都会接触到多线程这块。在java中以及Android开发中,大量的后台运行,异步消息队列,基本都是运用了多线程来实现。同样在,在ios移动开发和Android基本是很类似的一种模型。但是很多时候,在应用开发中,我们会发现本身并没有自己编码去处理一些并发的事件,去开辟新的子线程等等。(虽然一般的调用sdk发起一个网络请求,系统都是会默认给你新起一个线程去处理的)。整个程序看上去基本就是在Main线程中执行。确实也是这样的一种现象,因为我们基本都是在操作控件的布局,对控件数据添加,对于UI对象的更新都是在主线程的进行。即便等下我们看到我们开启了一个新的子线程用来获取处理数据, 阅读全文
posted @ 2012-12-07 11:58 倔强的黑苹果 阅读(207) 评论(0) 推荐(0) 编辑
摘要: UIViewAnimation动画与Core Animation的CATransition类动画(转)1.使用UIView类函数实现://UIViewAnimationTransitionFlipFromLeft,向左转动//UIViewAnimationTransitionFlipFromRight,向右转动//UIViewAnimationTransitionCurlUp,向上翻动//UIViewAnimationTransitionCurlDown,向下翻动[UIViewbeginAnimations:@"animationID"context:nil];[UIVie 阅读全文
posted @ 2012-12-07 10:38 倔强的黑苹果 阅读(245) 评论(0) 推荐(0) 编辑
摘要: IOS程序名称及内容国际化(本地化)(转)1、IOS程序名称国际化1.1 新建一个Single View app模版项目,命名为Localization。1.2 新建后,可以看到工作目录结构文件如下,单击InfoPlist.strings,查看右边的属性,在Localization栏添加语言。 1.3 添加完成后打开对应语言文件,比如English的添加CFBundleDisplayName="China";Chinese文件添加CFBundleDisplayName="中国";运行,如果此时你的模拟器是中文,你会看到你的程序名称变成了 中国:来到设置里 阅读全文
posted @ 2012-10-29 12:13 倔强的黑苹果 阅读(198) 评论(0) 推荐(0) 编辑