随笔分类 - ios

摘要:基本要点 · 不能导致手机故障(比如崩溃或屏幕问题) · 长时间/过度使用之后反应仍然很快 · 应用内的所有价格信息中不能用固定值代替可变变量 · 不要使用任何SDK里面的私人API · 不要使用任何SDK文档里面没有列出的功能 · 不要提及用户设备上不存在的硬件功能 · 如果需要网络连接,在没有网络的情况下要告知用户 · 不要(过度)模仿任何本地应用程序 · 不要(过度)山寨某个本地应用的功能 阅读全文
posted @ 2014-03-23 11:13 苹果吧 阅读 (14497) | 评论 (1) 编辑
摘要:继续说说ios不同版本之间的适配 先说一个东西:在xcode当中有一个东西叫targets,苹果的官方文档是这样说的: A target specifies a product to build and contains the instructions for building the product from a set of files in a project or workspace. A target defines a single product; it organizes the inputs into the build system—the source files and instructions for processing those source files—required to build that product. Projects can contain one or more targets, each of which produces one product.(省略若干字) 简单翻译过来就是一个target详细说明了要构建的 阅读全文
posted @ 2014-03-21 07:07 苹果吧 阅读 (13240) | 评论 (1) 编辑
摘要:总体来说个性化定制UITextView中的内容有两种方法: 1,从文件中读取内容到UITextView,这个个人感觉使用rtfd和rtf格式文件效果非常好。 2,使用NSAttributeString进行定制 阅读全文
posted @ 2014-03-20 11:14 苹果吧 阅读 (15468) | 评论 (0) 编辑
摘要:我们都知道,iOS为安全考虑,各应用只能使用其自已的应用沙盒内的存储空间,各应用之间是不能互相访问彼此的沙盒空间的。 另外,iOS设备都没有外置存储卡,这样,象 Android 设备间共同访问外置存储卡来共享资源的方式也是行不通的。 由以上分析,我们可以看得出,应用之间要进行资源共享,那么首先,资源要能进行存储,并且这个存储位置是能被各个应用同时访问到的才行。 我们来看一下存储的方式有几种,这里借用 Android 官方资料中的片断: Storage Options 阅读全文
posted @ 2014-03-20 08:54 苹果吧 阅读 (3924) | 评论 (0) 编辑
摘要:最近项目遇到一个很奇葩的问题 点击按钮启动 presentViewController 的时候出现下图效果: 阅读全文
posted @ 2014-03-19 17:38 苹果吧 阅读 (3572) | 评论 (0) 编辑
摘要:UIButton实现背景拉伸,即图片两端不拉伸中间拉伸的办法有如下两种: 第一种方法很简单而且使用性更广。做法就是直接拉伸想要setBackgroundImage的image,代码如下: UIImage *image = [UIImage imageNamed:@"image.png"]; image = [image stretchableImageWithLeftCapWidth:floorf(image.size.width/2) topCapHeight:floorf(image.size.height/2)]; 设置了左端帽之后,rightCapWidth = image.size.width - (image.leftCapWidth + 1); 也就是说图片中间的一像素用来拉伸。垂直方向同上。设置之后无论把image放到什么控件中都可以自动拉伸了。 阅读全文
posted @ 2014-03-19 11:24 苹果吧 阅读 (16929) | 评论 (1) 编辑
摘要:managedObjectContext (被管理的数据上下文)操作实际内容(操作持久层)作用:插入数据,查询数据,删除数据 NSManagedObjectModel(被管理的数据模型)数据库所有表格或数据结构,包含各实体的定义信息 作用:添加实体的属性,建立属性之间的关系操作方法:视图编辑器,或代码 NSPersistentStoreCoordinator(持久化存储助理)相当于数据库的连接器 作用:设置数据存储的名字,位置,存储方式,和存储时机 方法saveContext表示:保存数据到持久层(数据库) 方法applicationDocumentsDirectory表示:应用程序沙箱下的Documents目录路径 阅读全文
posted @ 2014-03-19 07:16 苹果吧 阅读 (987) | 评论 (1) 编辑
摘要:在项目开发时遇到一个问题,我在UIViewController上面直接创建了一个UIScrollerView,把UIScrollerView作为一个子视图添加到了UIViewController, 又再UIScrollerView中添加了一个UISlider的组件,在手势滑动的过程中,很难滑动到UISlider这个控件,经常是滑动的时候UIScrollerView进行了滚动, 而UISlider这个控件没有滑动,让人很抓狂。 阅读全文
posted @ 2014-03-18 16:40 苹果吧 阅读 (6043) | 评论 (0) 编辑
摘要:利用create groups for any added folders 这样的方式表示的是将所有的资源都放在资源包得路径下,没有层次的概念 利用create folder references for any added folders这样的表示方式是在按照原来文件夹的方式将他们放入到安装包中的。 在安装包中有几个这样的文件夹:(这些文件都是位于家路径下的) (1)Documents: 该文件夹用于程序数据文件写入到该目录下,用于存储用户数据以及需要备份的数据。 (2)Library:include Caches and Preferences . Preferences:用于放置用户的偏好数据,你不能直接创建偏好的设置文件,应该使用NSUserDefaults的类来获取和设置应用程序偏好 Caches:用于存放应用程序专用的支持文件,保存应用程序再次启动过程需要的信息。 (3)tmp:临时文件夹,下次启动就会将该文件夹中的东西删除。 阅读全文
posted @ 2014-03-17 09:58 苹果吧 阅读 (1644) | 评论 (0) 编辑
摘要:本章通过先总体介绍UICollectionView及其常用方法,再结合一个实例,了解如何使用UICollectionView。 UICollectionView 和 UICollectionViewController 类是iOS6 新引进的API,用于展示集合视图,布局更加灵活,可实现多列布局,用法类似于UITableView 和 UITableViewController 类。 使用UICollectionView 必须实现UICollectionViewDataSource,UICollectionViewDelegate,UICollectionViewDelegateFlowLayout这三个协议。 阅读全文
posted @ 2014-03-09 17:42 苹果吧 阅读 (276251) | 评论 (7) 编辑
摘要:本文细致探讨了 Xcode(以 iOS 设备为目标)中的 PhoneGap(也称为 Apache Cordova)应用程序本机插件。如果您刚开始接触 PhoneGap 或者需要回顾 PhoneGap 基础知识,请先阅读 Xcode for iOS 的 PhoneGap 入门,然后再继续阅读本文。 本文交替使用术语 Cordova 和 PhoneGap 指示同一开源应用程序平台,该平台可供您使用 HTML 和 JavaScript 创建本机安装的移动应用程序。PhoneGap 代码库已迁移至 Apache 软件基金会的开放资源中,名为 Cordova。Adobe 则仍以 PhoneGap 名称进行分发。有关更多信息,请参阅 Brian Leroux 发布的博客文章“PhoneGap、Cordova、名称有什么关系?”正如 Brian 在这篇文章中所说,“目前唯一的区别在于下载包名称的不同,并且这种情况仍将维持一段时间。 阅读全文
posted @ 2014-03-08 09:40 苹果吧 阅读 (1943) | 评论 (0) 编辑
摘要:1.开发平台路径: /Developer/Platforms 此路径下一般有三个目录,分别是mac电脑、模拟器、iphone真机 MacOSX.platform iPhoneSimulator.platform iPhoneOS.platform 每个目录下都有一个/Developer/usr/bin目录,放置开发中需要的程序 总的目录比如:/Developer/Platforms/*/Developer/usr/bin/ 注意:*代表上面上个目录中的一个,具体是哪个看目标平台的需求 阅读全文
posted @ 2014-03-07 12:08 苹果吧 阅读 (5991) | 评论 (0) 编辑
摘要:UINaviGationController通常被我们称为导航栏,他是视图与视图之间联系沟通的桥梁,一些著名的app都用到了他。下面我们来看一下如何建立一个navigation。 首先,我们通常新建工程是直接将视图控制器添加到window上,而现在有navigation以后,就多了一层: 阅读全文
posted @ 2014-03-07 09:44 苹果吧 阅读 (37578) | 评论 (1) 编辑
摘要:网上相关的资源不多,开源的且质量还不错的iOS项目也是少之又少,最近正好跟同事合作了一个iOS项目,来说说自己的一些想法。 阅读全文
posted @ 2014-03-06 10:33 苹果吧 阅读 (1820) | 评论 (1) 编辑
摘要:动态代理模式的应用很多,特别是在不能修改被代理类的前提下,要对执行某些方法时需要打log或者捕捉异常等处理时,是一个非常方便的方法。只需要少量修改客户端(场景类)代码和添加一个代理类就可以实现,这个符合Open-Close Principle。 阅读全文
posted @ 2014-03-05 10:42 苹果吧 阅读 (5486) | 评论 (2) 编辑
摘要:使用 shapeLayer 当动画层 其实以前有写过 类似的了 github: https://github.com/li6185377/AddScore 阅读全文
posted @ 2014-03-04 19:08 苹果吧 阅读 (1163) | 评论 (0) 编辑
摘要:iOS画折线图 阅读全文
posted @ 2014-03-03 09:53 苹果吧 阅读 (10029) | 评论 (0) 编辑
摘要:UITableView是IOS提供的一个带有复用机制的滚动表格,目前的基本功能就是垂直的表格,可以有多个section,每个section可以有多个row,然后还包含有sectionview,footview,headview等等入口可以设置tableview的样式。 阅读全文
posted @ 2014-03-02 08:59 苹果吧 阅读 (2081) | 评论 (0) 编辑
摘要:Stroyboard 可以被看作一个管理View画面的集合。也就是说一个iOS专案裡面并没有限制只能有一个Storyboard。 所以在你的APP专案中,你可以把功能相近的View放到同一个APP之中,形成一个群组,方便功能上的管理。 阅读全文
posted @ 2014-03-01 08:51 苹果吧 阅读 (12117) | 评论 (0) 编辑
摘要:前言 感谢您付出宝贵的才华与时间来开发iOS应用程程序。从职业与报酬的角度而言,这对于成千上万的开发员来说一直都是一项值得投入的事业,我们希望帮助您加入这个成功的组织。我们发布了《App Store审核指南》(App Store Review Guidelines),希望通过它帮您避开开发应用程序过程中的一些问题,并帮你在提交应用时加快审核流程。 阅读全文
posted @ 2014-02-28 14:33 苹果吧 阅读 (553) | 评论 (0) 编辑
摘要:利用javapns对IOS进行推送 阅读全文
posted @ 2014-02-28 07:57 苹果吧 阅读 (8061) | 评论 (1) 编辑
摘要://正式服务器 #define API_DOMAIN @"www.online.com" //测试服务器 //#define DOMAINXX @"192.168.0.10" 阅读全文
posted @ 2014-02-27 21:32 苹果吧 阅读 (6189) | 评论 (0) 编辑
摘要:在ios设备中进行录音,录音文件的格式为caf。但这种格式在很多设备中没法播放。为了适应终端的播放功能,特将caf转换为mp3格式文件来使用。 在录制caf文件时,需要使用双通道,否则在转换为MP3格式时,声音不对。caf录制端的设置为: 阅读全文
posted @ 2014-02-27 12:22 苹果吧 阅读 (10329) | 评论 (0) 编辑
摘要:此解决方案原理:1、在ViewController.h中声明方法和成员变量,以及webView的委托:////ViewController.h//JS_IOS_01////CreatedbyIMACon14-2-24.//Copyright(c)2014年Wanggsx.Allrightsreserved.//#import@interfaceViewController:UIViewController{}@property(nonatomic,retain)IBOutletUIWebView*webView;//两个参数-(void)getParam1:(NSString*)str1wit 阅读全文
posted @ 2014-02-27 10:44 苹果吧 阅读 (22345) | 评论 (2) 编辑
摘要:一般我们在使用http或者socket上传或者下载文件的时候,经常会在完成之后经行一次MD5值得校验(尤其是在断点续传的时候用的更 多),校验MD5值是为了防止在传输的过程当中丢包或者数据包被篡改,在使用MD5之前呢我们应该先了解MD5的一些常识。 阅读全文
posted @ 2014-02-26 13:23 苹果吧 阅读 (18100) | 评论 (4) 编辑
摘要:何为协议,何为委托,何为分类(类别)? 委托 即 代理 delegate: 他是 (接口的实现类)类似c中的回调。 把某个对象要做的事情委托给别的对象去做。 那么别的对象就是这个对象的代理,来代替他处理要做的事情。 在code中,首先你要明确一个对象的委托方是谁,委托的内容是什么。 在mfc中,每个程序都要继承自cwinapp,就是要重写几个虚函数额。 但是在cocoa中,我们来实现个UIApplicationDelegate代理,不用继承,我们只需要考虑你要捕获的应用程序生命周期中的函数就可以了。 可以这样用指针来看: 类a中有一个类b的指针,那么b就是a的代理委托。a干完一件事情就需要告诉b,b调用对应的方法来做出相应的响应。 ios开发中: 如:视图之间传输信息。 两个页面uiview 来实现传值,用delegate可以很好地做到。 阅读全文
posted @ 2014-02-26 12:03 苹果吧 阅读 (4334) | 评论 (0) 编辑
摘要:内置加速计是智能手机最酷的特性之一,ios可以通过这个小设备知道用户握持手机的方式,以及用户是否移动了手机,ios使用加速计处理自动旋转,并且许多游戏都是用它作为控制机制,它还可以用于检测摇动和其他突发的运动,此功能在iphone4之后得到进一步的拓展,还包括了一个内置的陀螺仪,可用于确定设备的方向与每条坐标轴之间的夹角。 阅读全文
posted @ 2014-02-25 18:26 苹果吧 阅读 (4445) | 评论 (0) 编辑
摘要:过年回来一直搞ios7的项目适配,也算是有些眉目. 阅读全文
posted @ 2014-02-25 16:08 苹果吧 阅读 (765) | 评论 (0) 编辑
摘要:开篇先扯几句题外话,许多朋友都问我怎么不写防啊,我确实有点犹豫。 hackers总是想象如果自己是开发者会怎么写,然后才能找到入手点。同理,开发者们也要想象自己是hackers会怎么做,才能采取相应的防御措施。然后,就是一场递归的博弈。 拿越狱检测这件事来说,起初大家只需判断有无安装Cydia就好了,hackers们说好,那我就不安装Cydia也可以动手脚。开发者们又说,那你一定得用的上MobileSubstrate,bash,ssh吧,我去检测手机有没有安装这些工具。可是又有什么用呢?你判断什么我绕过去什么。 当class-dump大肆流行,函数符号都被暴露,开发者想尽办法藏起自己的敏感函数代码。hackers们也知道class-dump的死穴在哪里,于是新的检索办法油然而生。也就说,当一个防御手段成为流行,它就不会再是个让hackers大骂“真特么费劲”的防御手段了。比如之前介绍的一个小技巧:内存数据擦除 ,hackers知道开发者都去擦数据了,那我hook memset在你擦之前去读就好了。开发者说:我直接写硬盘上然后删除!hackers说:难道你没听说过文 阅读全文
posted @ 2014-02-20 09:00 苹果吧 阅读 (5483) | 评论 (0) 编辑
摘要:基本概念: 键值观察是一种使用获取其他对象的特定属性变化的通知机制。 控制器层的绑定技术就是严重依赖键值观察获得模型层和控制器层的变化通知的。 对于不依赖控制器层类的应用程序,键值观察提供了一种简化的方法来实现检查器 并更新用户界面值。 阅读全文
posted @ 2014-02-18 10:34 苹果吧 阅读 (3991) | 评论 (1) 编辑
摘要:这个写的公共类叫做:GPScombineClass类主要展示GPS位置的定位,GPS坐标的获取,然后从手机坐标转换成火星坐标,继而在需要的情况下,由火星转百度 ,百度转火星的详细算法; 阅读全文
posted @ 2013-12-09 16:15 苹果吧 阅读 (3045) | 评论 (0) 编辑
摘要:具体步骤如下: 首先,需要一个pem的证书,该证书需要与开发时签名用的一致。 具体生成pem证书方法如下: 阅读全文
posted @ 2013-11-28 12:24 苹果吧 阅读 (17407) | 评论 (1) 编辑
摘要:首先,对于frame 大家都很熟悉,是当前view ,相对于其父视图view 的坐标,例如: [objc] view plaincopyprint?在CODE上查看代码片派生到我的代码片 UIView *view1 = [[UIView alloc] initWithFrame:CGRectMake(10, 60, 300, 300)]; view1.backgroundColor = [UIColor redColor]; [self.view addSubview: view1]; view1 的坐标就是针对self.view 所设置的。其中view1 距 self.view 的左侧边缘是10px,距self.view 的顶部 60px。 阅读全文
posted @ 2013-11-26 16:50 苹果吧 阅读 (1445) | 评论 (0) 编辑
摘要:UIScrollView可以实现在一个界面看到所有内容,同时也不需要担心所显示的内容超出屏幕的大小,当超出之后可以翻阅至下一页浏览。 阅读全文
posted @ 2013-11-25 13:15 苹果吧 阅读 (1814) | 评论 (0) 编辑
摘要:网上其他人写的日历类功能都很齐全,比较繁杂,对于想看看日历基础实现然后自己绘制日历的我来说不太方便,就自己整理了一个极精简的日历出来,大家看了之后应该能多少理解日历该怎么自定义,很简单。 我的小demo的源码 里边有详细的注释 阅读全文
posted @ 2013-11-23 11:29 苹果吧 阅读 (2117) | 评论 (0) 编辑
摘要:自动尺寸调整行为 当您改变视图的边框矩形时,其内嵌子视图的位置和尺寸往往也需要改变,以适应原始视图的新尺寸。如果视图的autoresizesSubviews属性声明被设置为YES,则其子视图会根据autoresizingMask属性的值自动进行尺寸调整。简单配置一下视图的自动尺寸调整掩码常常就能使应用程序得到合适的行为;否则,应用程序就必须通过重载layoutSubviews方法来提供自己的实现。 阅读全文
posted @ 2013-11-22 11:02 苹果吧 阅读 (934) | 评论 (1) 编辑
摘要:最近做的一个项目,项目中有个录音功能,采用的录音方法是IOS下的AVAudioRecorder。录音效果不错,但是录制的原生.pcm文件太大,每分钟大约10M左右。 阅读全文
posted @ 2013-11-21 17:41 苹果吧 阅读 (23400) | 评论 (3) 编辑
摘要:上面是官方文档上得解释。意思就是用来创建一个内容可拉伸,而边角不拉伸的图片,需要两个参数,第一个是左边不拉伸区域的宽度,第二个参数是上面不拉伸的高度。那么接下来的一个像素会被拉伸。例如,leftCapHeight为6,topCapHeight为8。那么,图片左边的6个像素,上边的8个像素。不会被拉伸,而左边的第7个像素,上边的第9个像素这一块区域将会被拉伸。剩余的部分也不会被拉伸。 阅读全文
posted @ 2013-11-21 14:40 苹果吧 阅读 (5709) | 评论 (0) 编辑
摘要:昨天写了一篇关于coredata的文章,自己觉得挺傻的文章。没想其它程序员看过后觉得更傻,于是今天决定写一篇厉害点的,首先写了一个coredata和uitableview结合的框架,非常简单实现了数据变化时对应的uitableview的视图也变化的效果。 阅读全文
posted @ 2013-11-21 08:25 苹果吧 阅读 (1571) | 评论 (1) 编辑
摘要:功能函数: -(bool)checkDevice:(NSString*)name { NSString* deviceType = [UIDevice currentDevice].model; NSLog(@"deviceType = %@", deviceType); NSRange range = [deviceType rangeOfString:name]; return range.location != NSNotFound; } 阅读全文
posted @ 2013-11-20 20:39 苹果吧 阅读 (1066) | 评论 (0) 编辑
摘要:网上对IOS的宏定义比较多,我总结了一些最常用的宏,后续还会继续补上。 阅读全文
posted @ 2013-11-20 10:40 苹果吧 阅读 (18264) | 评论 (0) 编辑
摘要:键-值编码是一个对于间接访问一个对象属性和关系使用字符标识的机制。它支持或者关系几个特别的Cocoa编程机制和技术,在Core Data,application scriptability,绑定技术(application scriptability和绑定技术特属于OS X)和声明属性的语言特性中。我们也能够使用键值编码简化我们的程序代码。 阅读全文
posted @ 2013-11-19 11:08 苹果吧 阅读 (1066) | 评论 (0) 编辑
摘要:iOS应用程序采用的是沙盒原理设计,普及一下知识:沙盒是在受限的安全环境中运行应用程序的一种做法,这种做法是要限制授予应用程序的代码访问权限。 具体的特点有三点:1、每个应用程序都有自己的存储空间; 2、应用程序不能翻过自己的围墙去访问别的存储空间的内容;3、应用程序请求的数据都要通过权限检测,假如不符合条件的话,不会被放行。 阅读全文
posted @ 2013-11-19 08:26 苹果吧 阅读 (6373) | 评论 (0) 编辑
摘要:今天在尝试使用CTCallCenter进行电话监听时,发现一直无法捕获电话状态改变的事件,研究了一番之后找到了解决方案,在这里分享给大家。 首先使用CTCallCenter监听电话的代码如下: 阅读全文
posted @ 2013-11-18 10:50 苹果吧 阅读 (5602) | 评论 (2) 编辑
摘要:我在xcode5下写的代码,我下载了iOS6的模拟器,我用iOS6和iOS7的模拟器切换运行,有的时候可以运行有的时候不可以运行,报错: 2013-11-17 16:49:04.049 sim[4747:303] /Applications/xcode5/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/usr/bin/sim: Did not find an executable file at the path: '/Users/will/Library/Developer/Xcode/DerivedData/Willing-fffyhilfdaxoozdjoywdhduakkck/Build/Products/Debug-iphonesimulator/Willing.app' 阅读全文
posted @ 2013-11-18 09:11 苹果吧 阅读 (13203) | 评论 (0) 编辑
摘要:本实例实现了AVAudioPlayer播放mp3歌曲文件,实现了播放、暂停、继续操作,音乐音量控制、播放进度显示,同时监听来电打断事件 阅读全文
posted @ 2013-11-15 08:17 苹果吧 阅读 (7866) | 评论 (0) 编辑
摘要:1.用户界面的扁平化 2.UIKit 动态行为支持 应用程序可以设置UIView 对象和其他对象(遵从UIDynamicItem 协议)的动态行为属性。遵从UIDynamicItem协议的对象被称为dynamic item。动态行为可以提升用户体验, 比如 加速度动画。 UIKit支持以下类型的动态行为: 阅读全文
posted @ 2013-11-14 08:20 苹果吧 阅读 (426) | 评论 (0) 编辑
摘要:第一、UIButton的定义 UIButton *button=[[UIButton buttonWithType:(UIButtonType); 能够定义的button类型有以下6种, typedef enum { UIButtonTypeCustom = 0, 自定义风格 UIButtonTypeRoundedRect, 圆角矩形 UIButtonTypeDetailDisclosure, 蓝色小箭头按钮,主要做详细说明用 UIButtonTypeInfoLight, 亮色感叹号 UIButtonTypeInfoDark, 暗色感叹号 UIButtonTypeContactAdd, 十字加号按钮 } UIButtonType; 第二、设置frame button1.frame = CGRectMake(20, 20, 280, 40); 阅读全文
posted @ 2013-11-13 19:52 苹果吧 阅读 (42525) | 评论 (0) 编辑
摘要:源码:http://files.cnblogs.com/ios8/%5Bcode4app.com%5DIntroductionTutorialView_10843.zip 可以看看demo,很简单,我也是一看就懂。 下面说说我整合到我的项目中的方法。 阅读全文
posted @ 2013-11-13 08:20 苹果吧 阅读 (15038) | 评论 (1) 编辑
摘要:过程比较坎坷,就此记录一番一遍后人 阅读全文
posted @ 2013-11-12 08:07 苹果吧 阅读 (2591) | 评论 (0) 编辑
摘要:这篇主要讲解如何解析Manifest.mbdb文件。 使用二进制工具打开这个文件,文件的头6个字节是固定的,相当于是文件的一种标识 后面的内容是一个一个的项,可以使用一个循环来读取文件,一个一个解析。 这里有一个概念要先说一下,就是域,域是用来定位一个文件在手机上的全路径。比如上图的 AppDomain-cairot,这个域就表示文件在手机上的目录为 /var/mobile/Applications/,不同的域对应的手机的目录是不一样的,下面给出所有域和目录的一个对应关系,下面是自己的一段代码, 看懂这段代码就知道域和路径的关系了。 阅读全文
posted @ 2013-11-11 20:26 苹果吧 阅读 (2946) | 评论 (0) 编辑
摘要:IOS设备如果没有越狱的话想获取一些敏感的信息还是有写复杂的,比如获取上网信息,短信,通话记录等等这些,但是有一个通用的方法可以获取到这些信息,那就是IOS 设备的备份功能。文章不涉及如何备份以及恢复的原理,这里详细讲解一下IOS 备份之后的文件。先看第一张图IOS 备份下来的文件 阅读全文
posted @ 2013-11-11 20:25 苹果吧 阅读 (12972) | 评论 (0) 编辑
摘要:用户输入用户名和密码,点击登录。。。我们把用户名和密码(用post方式或者get方式,get方式多用于测试看你需要)传给服务器,服务器进行判断,然后返回一个接口给我们(这里服务器返回的json接口,正确就返回一个正确的接口给我们,错误就返回一个错误的接口给我们)。我们拿到接口去解析,判断是否登录成功做相应的操作。 阅读全文
posted @ 2013-11-11 10:02 苹果吧 阅读 (7816) | 评论 (1) 编辑
摘要:由于iPhone控件的极度匮乏和自定义组件在重用上的限制,在过去的项目中我们积累了大量的“纯代码”组件——因为IB本身的限制,我们无法把这些组件封装为IB组件库(本来我们想通过分发xib文件的方式重用这些组件,但最终发现这根本不可能,苹果的Plug-in编程不支持iPhone)。 最终我们想到了静态库。虽然这仍然还是一种比较原始的复用方式,但起码我们可以隐藏组件的源代码。 阅读全文
posted @ 2013-11-10 16:34 苹果吧 阅读 (10130) | 评论 (0) 编辑
摘要:大家好,百忙之中,抽出点空,写个微博,话说好久没写。 最近项目中有碰到写类似微信聊天界面上的效果,特整理了一下,写了一个小的Demo,希望给没头绪的同学们一个参考! 下载地址:http://files.cnblogs.com/ios8/WeixinDeom.zip 阅读全文
posted @ 2013-11-09 17:53 苹果吧 阅读 (31317) | 评论 (0) 编辑
摘要:1 多线程是什么 多线程是个复杂的概念,按字面意思是同步完成多项任务,提高了资源的使用效率,从硬件、操作系统、应用软件不同的角度去看,多线程被赋予不同的内涵,对于硬件,现在市面上多数的CPU都是多核的,多核的CPU运算多线程更为出色;从操作系统角度,是多任务,现在用的主流操作系统都是多任务的,可以以便听歌、一边写博客;对于应用来说,多线程可以让应用有更快的回应,可以在网络下载时,同时响应用户的触摸操作。在iOS应用中,对多线程最初的理解,就是并发,它的含义是原来先做烧水,再摘菜,再炒菜的工作,会变成烧水的同时去摘菜,最后去炒菜。 阅读全文
posted @ 2013-11-09 09:15 苹果吧 阅读 (1638) | 评论 (0) 编辑
摘要:为了减少与服务器的连接沟通次数,提高应用程序的执行速度,使用了iOS的缓存机制 阅读全文
posted @ 2013-11-08 08:17 苹果吧 阅读 (1999) | 评论 (2) 编辑
摘要:都是一些值得一做,必须掌握的题。 阅读全文
posted @ 2013-11-07 08:25 苹果吧 阅读 (3722) | 评论 (0) 编辑
摘要:在 iPhone 应用或者是游戏的开发过程中,对声音的支持是必不可少的。在我做过的几个应用中,每个都涉及到音效,所以在这里做个简单的归纳,很多都是引用自《iPhone Application Programming Guide》(需要有 Apple ID 才能打开链接),加了一些实际使用的经验。 阅读全文
posted @ 2013-11-06 16:17 苹果吧 阅读 (7785) | 评论 (0) 编辑
摘要:Phone中,在网络中的数据流中提取链接中的文件名称时,有很多方法,这里总结一些。 阅读全文
posted @ 2013-11-06 13:34 苹果吧 阅读 (318) | 评论 (0) 编辑
摘要:在 ios开发中,我们经常需要对服务器的传回来的json进行解析,特别是对哪些字段特别多的就会又烦躁的情绪。tmd都是一样的东西,要为每个property赋值,真是累人啊。举个简单的例子吧。服务器会过来的数据是: 阅读全文
posted @ 2013-11-06 10:43 苹果吧 阅读 (1934) | 评论 (0) 编辑
摘要:如果一个需要对一个json对象的解析中不存在数组之类的,就直接继承就行,什么都不用写。如果有数组的话,就需要重载 - (NSString*) propertyClassName:(NSString*)propertyName这个方法就行。这样就可以找到正确的类进行解析了。 阅读全文
posted @ 2013-11-06 10:38 苹果吧 阅读 (2928) | 评论 (2) 编辑
摘要:归档是一种很常用的文件储存方法,几乎任何类型的对象都能够被归档储存(实际上是一种文件保存的形式),浏览网上的一些资料后,并结合自己的一些经验,总结成此文。 阅读全文
posted @ 2013-11-05 07:47 苹果吧 阅读 (46077) | 评论 (5) 编辑
摘要:贴几段斯坦福大学关于gcd的代码,这段代码逐步演示了如何修正错误,其中用到的既是串行队列 阅读全文
posted @ 2013-11-04 12:33 苹果吧 阅读 (3318) | 评论 (2) 编辑
摘要:1.static有什么用途?(请至少说明两种) 1)限制变量的作用域 2)设置变量的存储域(堆,主动分配内存也是堆) 1)在函数体,一个被声明为静态的变量在这一函数被调用过程中维持其值不变。
 2) 在模块内(但在函数体外),一个被声明为静态的变量可以被模块内所用函数访问,但不能被模块外其它函数访问。它是一个本地的全局变量。
 3) 在模块内,一个被声明为静态的函数只可被这一模块内的其它函数调用。那就是,这个函数被限制在声明它的模块的本地范围内使用。 2.全局变量和局部变量在内存中是否有区别?如果有,是什么区别? 全局变量储存在静态数据库,局部变量在栈 阅读全文
posted @ 2013-11-03 18:20 苹果吧 阅读 (7132) | 评论 (0) 编辑
摘要:1、Objective-C的类可以多重继承么?可以采用多个协议么? 答:不可以多重继承,可以采用多个协议。 2、#import和#include的区别是什么?#import 跟 #import""有什么区别? #import能避免头文件被重复包含的问题: 1) 一般来说,导入objective c的头文件时用#import,包含c/c++头文件时用#include。 使用include要注意重复引用的问题: class A,class B都引用了class C,class D若引用class A与class B,就会报重复引用的错误。 2)#import 确定一个文件只能被导入一次,这使你在递归包含中不会出现问题。 所以,#import比起#include的好处就是它避免了重复引用的问题。所以在OC中我们基本用的都是import。 #import 包含iOS框架类库里的类,#import""包含项目里自定义的类。 阅读全文
posted @ 2013-11-03 12:20 苹果吧 阅读 (35987) | 评论 (6) 编辑
摘要:1.判断邮箱格式是否正确的代码 //利用正则表达式验证 -(BOOL)isValidateEmail:(NSString *)email { NSString *emailRegex = @"[A-Z0-9a-z._%+-]+@[A-Za-z0-9.-]+\\.[A-Za-z]{2,4}"; NSPredicate *emailTest = [NSPredicate predicateWithFormat:@"SELF MATCHES%@",emailRegex]; return [emailTest evaluateWithObject:email]; } 2.图片压缩 阅读全文
posted @ 2013-11-02 10:49 苹果吧 阅读 (2170) | 评论 (0) 编辑
摘要:今天整理硬盘,找到了一个有趣的demo。 一年前,91助手游戏联运呈爆棚趋势,但是许多使用FlashAir开发的优秀的游戏和应用都卡在了接入的环节。搜遍全网,国内相关资料寥寥无几,只有位Adobe的传教士写了一些有点关联文章,但是也实在没法解决在接入中遇到的这些疑难杂症。 恰巧,我也做了一款APP在91上线,接入的过程中也遇到了很多奇葩的问题,现在想想,那些熬夜摸石头过河的日子还真不好过。 产品上线后,应91商务林宗华先生邀约,特别写了一个接入iOS的demo,换取了一天的首页推荐。但是推荐效果非常一般,真是枉费我细心的准备demo的了。 今年,我现在所在的公司有一款产品与91进行了合作,在接入时,收到了91技术发来的封装好的ane,封装的很不错,我也就直接用他的了,不想再花费多余的时间去做sdk的升级了。 总之,demo中包含很多接入的细节,是一个完整的Air接入其他平台功能的demo,虽然有些处理方法现在回头看看显得过时了,但如果你能掌握了处理这些疑难杂症的技巧和思路,那么接入国内外任何平台,都显得特轻松了。 阅读全文
posted @ 2013-11-02 09:49 苹果吧 阅读 (1991) | 评论 (0) 编辑
摘要:关于IOS程序设置启动画面以及图标的设备目前主要为:IPhone设备 和IPad设备 IPhone启动画面以及图标的设置 目前IPhone的分辨率为:320X480、640X960、640X1136。 Default.png 320X480 iPhone 320X480分辨率屏幕默认启动图片。 Default@2x.png 640X960 iPhone 640X960分辨率屏幕默认启动图片。 Default-568h@2x.png 640X1136 iPhone 640X1136分辨率屏幕默认启动图片。 阅读全文
posted @ 2013-11-02 09:36 苹果吧 阅读 (13214) | 评论 (0) 编辑
摘要:这个图片展示的时候,我只想让它在蓝色的view上展示。。就需要去设置view的一个属性clip subview。。把这个属性打勾。。。view有个clip subview属性,选啦之后,超出这个view的部分就不显示啦 阅读全文
posted @ 2013-11-01 12:37 苹果吧 阅读 (2551) | 评论 (1) 编辑
摘要:OSI(Open System interconnection)开放系统互连参考模型 ISO(International Standards Organization)国际标准化组织 阅读全文
posted @ 2013-10-31 13:20 苹果吧 阅读 (7325) | 评论 (0) 编辑
摘要:单例模式是iOS常用设计模式中的一种。单例设计模式的作用是使得这个类的一个对象成为系统中的唯一实例,因此需要用一种唯一的方法去创建这个对象并返回这个对象的地址。那么,我们何时使用单例模式呢?1、类只能有一个实例,而且必须从一个为人熟知的访问点对其访问。2、这个唯一的实例只能通过子类化进行扩展,而且扩展的对象不会破坏客户端代码。 阅读全文
posted @ 2013-10-30 21:42 苹果吧 阅读 (15595) | 评论 (2) 编辑
摘要:UIKit中包含了UIGestureRecognizer类,用于检测发生在设备中的手势。UIGestureRecognizer是一个抽象类,定义了所有手势的基本行为,它有下面一些子类用于处理具体的手势: 1、拍击UITapGestureRecognizer (任意次数的拍击) 2、向里或向外捏UIPinchGestureRecognizer (用于缩放) 3、摇动或者拖拽UIPanGestureRecognizer 4、擦碰UISwipeGestureRecognizer (以任意方向) 5、旋转UIRotationGestureRecognizer (手指朝相反方向移动) 6、长按UILongPressGestureRecognizer 阅读全文
posted @ 2013-10-30 16:36 苹果吧 阅读 (329) | 评论 (0) 编辑
摘要:1 问题: @property(nonatomic,getter=isOn) BOOL on; 中的getter = isOn的含义? 2 答案: 如果这个property是 BOOL on, 那么Objc默认创建的 setter 为: - (void)on:(BOOL)setOn { } getter 为: - (BOOL)on { return on; } 但是你可以手动更改 setter 和 getter 方法,就像上面的: getter = xxxOn 的话, getter 就变为: - (BOOL)xxxOn { return on; } 阅读全文
posted @ 2013-10-30 07:32 苹果吧 阅读 (7107) | 评论 (0) 编辑
摘要:最近有个疑惑 @interface中的属性和@property声明的属性有什么区别呢,经过上网搜索和实践验证,个人总结了几点,共同学习一下。 阅读全文
posted @ 2013-10-30 07:16 苹果吧 阅读 (824) | 评论 (0) 编辑
摘要:xcode5编译一个xcode4时写的代码,提交iTunes审核时出错。 1、iOS提交审核时出现Invalid Binary错误 2、收到邮件: 阅读全文
posted @ 2013-10-28 15:34 苹果吧 阅读 (1097) | 评论 (0) 编辑
摘要:tableView表格中的cell有重用机制,这是一个很好的东西,可以避免开辟很多的空间内存。但是有时候我们不想让它重用cell,,可以用以下的代码解决。 阅读全文
posted @ 2013-10-28 15:33 苹果吧 阅读 (3467) | 评论 (0) 编辑
摘要:音频文件(Audio File) 1、有两个概念 (1)、文件格式(File Format or Audio Containers)——描述文件本身的格式,里面的音频数据可以用不同的编码格式。 例如:caf文件就是一种文件格式。这种文件里面包含的音频数据可以是MP3编码,线性PCM编码或者其他的编码格式。 (2)、数据格式(Data Format or Audio Encoding)——音频数据的编码格式。 阅读全文
posted @ 2013-10-28 15:29 苹果吧 阅读 (4230) | 评论 (1) 编辑
摘要:1、如果在程序中想对某张图片进行处理的话(得到某张图片的一部分)可一用以下代码: UIImage *image = [UIImage imageNamed:filename]; CGImageRef imageRef = image.CGImage; CGRect rect = CGRectMake(origin.x, origin.y ,size.width, size.height); CGImageRef imageRefRect = CGImageCreateWithImageInRect(imageRef, rect); UIImage *imageRect = [[UIImage alloc] initWithCGImage:imageRefRect]; 阅读全文
posted @ 2013-10-20 09:08 苹果吧 阅读 (4750) | 评论 (1) 编辑
摘要:ctrl+shift 快速放大dock的图标会暂时放大,而如果你开启了dock放大 Command+Option+W 将所有窗口关闭 Command+W 将当前窗口关闭(可以关闭Safari标签栏,很实用) Command+Option+M 将所有窗口最小化 阅读全文
posted @ 2013-10-19 16:57 苹果吧 阅读 (61176) | 评论 (3) 编辑
摘要:取音频数据和画波形图的方法 阅读全文
posted @ 2013-10-19 09:43 苹果吧 阅读 (6073) | 评论 (1) 编辑
摘要:存储方法是一个可以获得或者设置一个对象的属性值的实例方法。在Cocoa的术语中,一个检索对象属性值的方法提及为getter方法,或者"getter;",一个改变对象属性值的方法提及为setter方法,或者“setter.”这些方法通常成对建立,提供获得或者设置对象属性值的API。 阅读全文
posted @ 2013-10-18 20:23 苹果吧 阅读 (1459) | 评论 (0) 编辑
摘要:源码:http://files.cnblogs.com/ios8/ASIHttpRequestDemo2.zip NSURL *url = [NSURLURLWithString:@"http://pica.nipic.com/2007-12-12/20071212235955316_2.jpg"]; ASIFormDataRequest *request = [ASIFormDataRequestrequestWithURL:url];//创建数据请求对象 [request setRequestMethod:@"GET"]; [request setTimeOutSeconds:60]; // [request setDelegate:self];//设置代理 阅读全文
posted @ 2013-10-17 10:46 苹果吧 阅读 (1015) | 评论 (1) 编辑
摘要:1.去RegexKitLite下载类库,解压出来会有一个例子包及2个文件,其实用到的就这2个文件,添加到工程中。 2.工程中添加libicucore.dylib frameworks。 友情提醒:一般人导入RegexKitLite编译报错,正是因为没有导入这个类库,加上这个就OK了 3.现在所有的nsstring对象就可以调用RegexKitLite中的方法了。 阅读全文
posted @ 2013-10-16 13:18 苹果吧 阅读 (3343) | 评论 (0) 编辑
摘要:IOS 支持三种检测当前位置的方式:手机基站、Wi-Fi、和GPS,其中GPS是经度最高的,同时也是最耗费手机电量的。一般情况下在室内是无法通过GPS获 取位置信息的,通过Wi-Fi获取位置的原理是通过网络提供商的IP地址信息来获取位置,经度不是很高,最后是通过手机基站获取位置,手机开机后会连接附 近的基站塔获取信号,通过基站可以得到手机所在的位置信息,基站越密集,所获取的位置信息经度就越高。 阅读全文
posted @ 2012-07-30 14:54 苹果吧 阅读 (9162) | 评论 (2) 编辑
摘要:UIImage *srcimg = [UIImage imageNamed:@"test.png"];////test.png宽172 高192 NSLog(@"image width = %f,height = %f",srcimg.size.width,srcimg.size.height); UIImageView *imgview = [[UIImageView alloc] init]; imgview.frame = CGRectMake(10, 150, 300, 220); CGRect rect = CGRectMake(0, 0, 300, 100);//要裁剪的图片区域,按照原图的像素大小来,超过原图大小的边自动适配 CGImageRef cgimg = CGImageCreateWithImageInRect([srcimg CGImage], rect); imgview.image = [UIImage imageWithCGImage:cgimg]; CGImageRelease(cgimg);//用完一定要释放,否则内存泄露 [self 阅读全文
posted @ 2012-07-27 14:31 苹果吧 阅读 (8958) | 评论 (0) 编辑
摘要:在我们编程的过程中,布尔类型是不可或缺的数据类型,我们知道布尔类型一般表现为真值或者假值,但是在不同的编程语言,布尔类型却有不同的表现。让我们来看,C语言:实际上,C语言并不具备布尔类型,但是一般定义0为假值,非0值是真值(一般用1表示),所以int类型与布尔类型可谓难兄难弟,可以互相转换;而在java语言:int类型与布尔类型却是不能互相转换,存储的值只有true或者false值; 阅读全文
posted @ 2012-07-26 23:02 苹果吧 阅读 (1255) | 评论 (0) 编辑
摘要:先来介绍一下历史背景,Cocoa和Objective-C是苹果公司Mac OS X操作系统的核心。虽然Mac OS X相对较新,但Objective-C和Cocoa的推出已有时日。早在20世纪80年代早期,Bard Cox就发明了Objective-C,意在将流行的,可移植的C语言与优雅的Smalltalk语言结合在一起。1985年,Steve Jobs成立了NeXT公司,致力于开发强大且经济的工作站。NeXT选择Unix作为其操作系统,创建了NextSTEP(使用Objective-C 开发的一款强大的用户界面工具包)。NextSTEP只是创造了一些特性,拥有少量忠实拥趸,并未在商业上获得成功。1996年,苹果公司收购NeXT之 后,NeXTSTEP被重命名为Cocoa,并得到推广。Objective-C只不过是拥有一些附加特性的C语言,有相关知识的童鞋们应该很快就能上 手!"Hello Word"从来都是经典中的经典!今天我们就来个"Hello Objective-C"吧。 阅读全文
posted @ 2012-07-26 11:02 苹果吧 阅读 (1155) | 评论 (0) 编辑
摘要:在iPhone上是采用sqlite进行数据存储是我一种比较习惯性的做法。一般在其他平台也比较习惯用sqlite,比如android。 而iphone上有一些封装好的第三方框架提供使用,更节省了许多时间。如:Sqlitepersistentobjects ,FMDB 。今天查找了这个两个框架,感觉FMDB的风格更符合我的使用,其实两者是各有优点的,只是看个人喜好而已。 阅读全文
posted @ 2012-07-23 14:19 苹果吧 阅读 (4424) | 评论 (1) 编辑
摘要:1. 通过分配或复制创建的对象保持计数1 2. 假设任何别的方法获取的对象保持计数1,而且在自动释放池中. 要想在当前执行范围外使用该对象,就必须保持它 3. 向集合添加对象时它就被保持,从集合移除对象时就被释放.释放集合对象会释放该集合中的所有对象 4. 确保有多少alloc,copy,mutableCopy或retain消息就有多少release或autorelease消息发送给该对象. 换句话说,确保你的代码平衡 5. 在访问方法设置属性,先保持,再释放 (ztime: 现在有@propperty , @synthesize 两个指令自动创建此代码) 6. 用@"..."结构创建的NSString对象是常量.发送release或retain并无效果 阅读全文
posted @ 2012-07-20 10:20 苹果吧 阅读 (431) | 评论 (0) 编辑
摘要:为了处理好应用程序的挂起、暂停等情况下的数据保存,或对应添加所需处理,我们必须了解ios生命周期。但是不要去背去记,做个实验就好。 阅读全文
posted @ 2012-06-28 11:50 苹果吧 阅读 (1502) | 评论 (3) 编辑
摘要:如果在使用UIAlertView的过程中,莫名其妙的出现wait_fences: failed to receive reply: 10004003这个错误,那么十有八九是因为你忘记了关闭键盘。 UIAlertView一弹出,倘若键盘没有关闭,就失去了焦点,当UIAlertView关闭,再回到原界面时,就会尴尬的接到 wait_fences: failed to receive reply: 10004003 阅读全文
posted @ 2012-06-26 14:58 苹果吧 阅读 (1060) | 评论 (0) 编辑
摘要:通常情况下,我们用NSUserDefaults存储数据信息,但是对于一些私密信息,比如密码、证书等等,就需要使用更为安全的keychain了。keychain里保存的信息不会因App被删除而丢失,在用户重新安装App后依然有效,数据还在。 使用苹果官方发布的KeychainItemWrapper或者SFHFKeychainUtils很方便,后来看到 iphone使用keychain来存取用户名和密码 一文,觉得对了解keychain有很大的帮助,于是ARC控也尝试了一把。 阅读全文
posted @ 2012-06-25 11:43 苹果吧 阅读 (21848) | 评论 (1) 编辑
摘要:1、UINavigationController导航控制器如何使用 UINavigationController可以翻译为导航控制器,在IOS里经常用到。 我们看看它的如何使用: 阅读全文
posted @ 2012-06-23 14:42 苹果吧 阅读 (10206) | 评论 (0) 编辑
摘要:If you're new here, you may want to subscribe to my RSS feed or follow me on Twitter. Thanks for visiting! 阅读全文
posted @ 2012-06-21 14:02 苹果吧 阅读 (1830) | 评论 (1) 编辑
摘要:先声明一下,下面用到的方法是本人已经过实际运行达到预期效果后的总结,诸位在参考时可少走一些弯路,放心尝试。 我们所要达到的预期效果是,用UIWebView加载网页,长按某单词后弹出我们自定义的菜单栏,不显示系统本身自带的,点击某一菜单进行对应的处理。 阅读全文
posted @ 2012-06-20 17:54 苹果吧 阅读 (2273) | 评论 (0) 编辑