代码改变世界

随笔分类 -  iOS

iOS开发中的SQLite知识总结

2013-01-05 16:27 by v2m, 2807 阅读, 收藏, 编辑
摘要: 一、查询优化1.使用索引 当表中的数据太多时,建立索引可以明显提高查询速度 创建索引sql> CREATE INDEX 索引名 ON 表(字段1[ASC,DESC],字段2[ASC,DESC]...) 删除索引sql> DROP INDEX 索引名 重建索引sql> REINDEX [索引名,表名]2.数据分析 对表的索引的分析,ANALYZE命令令集合关于索引的统计信息并将它们储存在数据库的一个特殊表中,查询优化器可以用该表来制作更好的索引选择。 若不给出参数,所有附加数据库中的所有索引被分析。若参数给出数据库名,该数据库中的所有索引被分析。若给出表名 作参数,则只有关联该 阅读全文

关于ARC的一些说法

2012-12-25 18:00 by v2m, 1711 阅读, 收藏, 编辑
摘要: 以下全部在xCode 4.5,llvm 4.1的测试环境中1.IBOUTLET对于IBOUTLET必须是weak的说法,经过使用Instruments测试,使用strong修饰在arc开启的情况下完全没有任何内存遗留不释放的问题。而在arc关闭的情况下,如果是assign修饰的,则不用处理,如果是retain的必须在退出viewController的时候release对象。如果是简单的放在变量定义里面没有@property修饰的话,也需要release。2.Toll-Free BridgingCFBridgingRelease,__bridge_transfer,用来将CFType的转化成id 阅读全文

iOS中图片与视频一次性多选

2012-12-21 00:58 by v2m, 3024 阅读, 收藏, 编辑
摘要: 一.使用系统的Assets Library Framework这个是用来访问Photos程序中的图片和视频的库。其中几个类解释如下 ALAsset ->包含一个图片或视频的各种信息 ALAssetRepresentation ->得到ALAsset的各种信息 ALAssetsFilter ->用来从一个ALAssetsGroup中检索ALAssets ALAssetsGroup ->一组ALAsset,一个asset可以属于多个这样的组,可以添加一个asset到某个组中 ALAssetsLibrary ->整个图片库中的内容,可以对图片库的... 阅读全文

网络模拟与抓包

2012-12-19 21:33 by v2m, 2010 阅读, 收藏, 编辑
摘要: 介绍两个工具一.Network link Conditioner这个软件可以模拟各种网络情况 3G,DSL,EDGE,Wifi等,还可以自定义网络状况,用来测试各种不通网络环境下App的表现非常有用。不过XCode4.1以后不在随XCode工具提供,要单独下载,去这里搜吧,包含在Hardwre IO Tools中注意,开启时对整个系统有效,测试完毕记得停止它二.rvictl 在iOS5中新引入了“远程虚拟接口(remote virtual interface ,RVI)“的特性,可以在Mac中建立一个虚拟网络接口来作为iOS设备的网络栈,这样所有经过iOS设备的流量都会经过此虚拟接口,此... 阅读全文

iDevice 抓包方法总结

2012-12-18 00:19 by v2m, 1914 阅读, 收藏, 编辑
摘要: 1.利用代理 电脑用网卡连接外网,共享无线网络给iDevice上网,然后在电脑上用Wireshark、Paros等抓包工具抓包。 优点:方便 缺点:还要弄根网线2.越狱 越狱后在iDevice上安装network-cmds,sudo,tcpdump,然后使用iDevice上的tcpdump抓包,保存成pcap格式,再把结果放到Wireshark上分析。 优点:至少不需要网线了 缺点:还要越狱...3.使用Fiddler Fiddler:工具栏 Tools – Fiddler Options – Connections 中勾选 Allow Remote Computers to Connect 阅读全文

InAppPurchase总结

2012-09-17 17:50 by v2m, 2396 阅读, 收藏, 编辑
摘要: 一.简介1.功能IAP可用于支付 内容,功能,服务,订阅。不能用来支付 实物,实体服务,虚拟货币,带有色情/仇恨/暴力/赌博等等性质的内容或服务2.商品按类型可分为:Consumable 每次都收费(消耗品)
Non-consumable 付费一次(非消耗品)
Auto-renewable subscriptions 自动同步订阅(服务有效期间内自动同步其他机器上的订阅)Free subscriptions 免费订阅 仅用于 Newsstand-enabled apps.
Non-renewing subscriptions 非自动同步订阅,由开发者决定其他机器是否更新3.交易模式B... 阅读全文

iOS使用自定义字体

2012-09-17 15:06 by v2m, 1391 阅读, 收藏, 编辑
摘要: 准备:你的自定义字体文件-〉ttf,odf字体文件。现在网上一般下的中文字体文件都是ttc格式的,这个需要转换一下,网上有很多转换工具,不过都是windows下面的。(ttc就是多个ttf压在一起形成的)使用:1.加入工程中2.得到UIFont来使用方法一:Info.plist中添加Fonts provided by application项,加入一个item值为刚刚添加的字体文件文件名。如果不知道这个字体的FontName,可以使用Mac OS中的 字体册 程序查看。[textField setFont:[UIFont fontWithName:@"Amelia BT" 阅读全文

RestKit 入门

2012-07-18 23:31 by v2m, 5366 阅读, 收藏, 编辑
摘要: 本篇主要简单介绍了一下restkit中的网络连接,字段映射,与RKTableController。并且在最后给出一个简单的load more的RKTableController的派生子类。RestKit连接:https://github.com/RestKit/RestKit/一.网络连接这里主要用到的是RKClient初始化- (void)initRKClient {// Initialize with a Base URL RKClient* client = [RKClient clientWithBaseURL:@"http://restkit.org"]; ! / 阅读全文

更改UIView的背景

2012-07-11 00:08 by v2m, 6680 阅读, 收藏, 编辑
摘要: 本文分析对比了各种更改UIView背景的方法。当然,背景是根据一个图片来的(非纯色)。一.加一个uiimageview在uiview上面 UIImageView* imageView = [[UIImageView alloc] initWithFrame:view.bounds]; imageView.image = [[UIImage imageNamed:@"name.png"] stretchableImageWithLeftCapWidth:left topCapHeight:top]; [view addSubview:imageView];这种方式,如果原始图 阅读全文

非代码方式创建UItableViewCell

2012-06-13 13:45 by v2m, 3497 阅读, 收藏, 编辑
摘要: 我们很多时候都是通过代码的方式alloc,init一个uitableviewcell,可是有的时候却有那么一点必要来使用xib文件所见即所得的来设计布局我们的cell。下面介绍如何使用非代码的方式创建他们。方法一:新建一个空的nib文件,拖一个uitableviewcell到视图中。如果有必要就修改所属类为你的自定义类,拖拽各种属性关系。然后在加载的时候使用如下代码NSArray *topLevelObjects = [[NSBundle mainBundle] loadNibNamed:@”YOUNIBFILENAME” owner:nil options:nil];for(id curre 阅读全文

NSNotificationCenter使用block方式的一点注意事项

2012-06-04 17:13 by v2m, 5055 阅读, 收藏, 编辑
摘要: 非arc环境中1。可以正常dealloc释放id observer;-(void)back{ [[NSNotificationCenter defaultCenter] removeObserver:observer]; [self.navigationController popViewControllerAnimated:YES];}- (void)viewDidLoad{ [super viewDidLoad]; observer = [[NSNotificationCenter defaultCenter] addObserverForName:kPopNoti... 阅读全文

结合OHAttributedLabel说Core Text

2012-02-02 15:08 by v2m, 2287 阅读, 收藏, 编辑
摘要: 富文本,就是一段有不同的样式的文字。看一下iOS平台下实现富文本的一些常用的类。NSAttributedString CFAttributedString 一段有自己样式(统一不可变)的文字NSMutableAttributedString CFMutableAttributedString 一段有多种样式的文字CTFrame1.CGPath -> CGPathGetBoundingBox 得到占用的区域大小2.CTFrameGetLineOrigins 可以得到每行的起始位置3.还可以控制文字横排竖排等CTFramesetter1.CTFramesetterSuggestFrameSi 阅读全文

iOS 的keyChain

2012-01-18 17:16 by v2m, 7596 阅读, 收藏, 编辑
摘要: 说明:每一个keyChain的组成如图,整体是一个字典结构.1.kSecClass key 定义属于那一种类型的keyChain2.不同的类型包含不同的Attributes,这些attributes定义了这个item的具体信息3.每个item可以包含一个密码项来存储对应的密码使用:引入Security包,引入文件 #import <Security/Security.h>添加- (IBAction)add:(id)sender { if (nameField.text.length > 0 && passwordField.text.length > 0 阅读全文

ios下得到汉字拼音的方法比较

2012-01-17 16:28 by v2m, 4299 阅读, 收藏, 编辑
摘要: 对网上流传盛广的三个取得汉字对应拼音的小总结1.大小 pinyin最小了,POAPinyin的声明就快500行了.2.速度 其实三者差不多,但是不要用POAPinyin原生的那个convert,那个每次都遍历查找很慢.3.对比 pinyin只能取得汉字对应拼音的首字母,PYMethod原本是应用于股票查询的,它的拼音个数少于POAPinyin. 对于这个汉字"嗯",我拼音输入法是"en"打出来的,PYMethod得到的是EN,但是POAPinyin得到的是NG,百度百科也读NG.....4.原理 pinyin是把unicode中汉字部分的首字母全部提取到 阅读全文

iOS 的本地化 Localization

2011-12-22 16:50 by v2m, 3835 阅读, 收藏, 编辑
摘要: 基本本地化格式说明:/**/中间的是注释,value是key在相应语言环境下的显示值,以';'结尾./* comment */"key" = "value";做本地化测试的时候最好把机器中的程序删除,工程clean,然后在改变语言环境再去测试。一.程序源文件1.在.m或.mm文件中使用的NSLocalizedString(<#key#>, <#comment#>)对想要本地化的字符串标识.2.运行genstrings -o target_dir/ src_dir/*.mtarget_dir是你想生成的对应的语言包文 阅读全文

无限滚动视图

2011-12-08 23:10 by v2m, 2544 阅读, 收藏, 编辑
摘要: 一个可以无限滚动的程序,基本功能是实现了,但是还有很多地方需要完善.先记录一下.下面是代码的相关:1.基本思路是对UIScrollView重载,content的首尾各增加一个多余的视图使得看起来很连续.又,每次scroll的时候都会调用layoutView,所以可以在一定的offset之后重置之而不影响视觉效果.而且把contentview的中心与frame的中心重叠,这样就两端滚动都非常顺畅,用scrollDistance记录最开始需要的偏移(中心重叠的偏移).// 纵向滚动-(void)verticalScroll{ CGPoint currentOffset = [self con... 阅读全文

storyboard 小结

2011-12-02 15:43 by v2m, 1875 阅读, 收藏, 编辑
摘要: 一.类介绍UIStoryboard得到一个StoryBoard+ (UIStoryboard *)storyboardWithName:(NSString *)name bundle:(NSBundle *)storyboardBundleOrNil// 也可以通过一个在storyboard中有sence的viewController中用self.storyBoard得到自己所在的storyboard接口- (id)instantiateInitialViewController// 返回第一个界面,每个storyboard都必须有一个入口界面,特别是程序的主storyboard的第一个界面, 阅读全文

ARC 整理

2011-11-30 17:23 by v2m, 4365 阅读, 收藏, 编辑
摘要: 一,注意事项1.不可以使用retain,retainCount,release,autorelease 用@select()这样的调用也不行.属性命名不能以new开头。2.若重写一个类子类的dealloc,不应调用[super dealloc],当然也不用写什么release释放一些什么对象,只是处理一些你觉得必要处理的事情吧,比如中止一个还没有完成的网络请求.3.不能使用NSAllocateObject和NSDeallocateObject4.你不能在c结构中使用对象,更好的方式是使用Objective-c类来代替.5.在id和void*之间不能隐士转换,必须指明相应转换的生命周期。6.不能 阅读全文

UIImagePickerController Class

2011-11-16 14:24 by v2m, 3162 阅读, 收藏, 编辑
摘要: 概述不能定制界面,不可派生子类。使用步骤:检查制定源是否可用. isSourceTypeAvailable:方法.检查可用媒体(视频还是只能是图片) availableMediaTypesForSourceType:方法.设置界面媒体属性 mediaTypes property.显示界面使用 presentViewController:animated:completion: 方法.iPad中是 popover形式. 需要确保sourceType有效.相关操作,移除视图.有相关代理,有闪光灯支持.对于视频有10分钟限制,但是可以通过videoMaximumDuration属性更改。可以使用默认 阅读全文

NSLocale Class

2011-11-16 13:45 by v2m, 1135 阅读, 收藏, 编辑
摘要: 与CFLocale自由转换.可以通过注册 NSCurrentLocaleDidChangeNotification 通知来获得区域位置改变消息.生成–initWithLocaleIdentifier:+systemLocale// 操作系统的,最初始的区域?+currentLocale// 当前用户设定区域,肯能是缓存的+autoupdatingCurrentLocale// 当前用户的系统区域设置,实时更新的信息–displayNameForKey:value: /* 某种locale中对指定区域中指定属性的显示值。并不是所有的属性都有显示值。 举例:NSLocale *frLocal... 阅读全文