iOS基础
文章平均质量分 73
qiummm
阿里测试一枚,目前主要负责淘宝iPad客户端测试。喜欢iOS,喜欢java,善于发现问题并推动解决。在测试理论、用例设计、单元测试、自动化测试、接口测试上有自己的想法并推广给其他同学。
展开
-
ios中的几种指令集(armv6、armv7、armv7s、arm64)
目前ios的指令集有以下几种:armv6iPhoneiPhone2iPhone3G第一代和第二代iPod Toucharmv7iPhone4iPhone4Sarmv7siPhone5iPhone5Carm64iPhone5S 机器对指令集的支持是向下兼容的,因此armv7的指令集是可转载 2014-10-17 17:41:05 · 2202 阅读 · 0 评论 -
制作iOS静态库
注意:首先确保你的XCODE4使用IOS5,否则请下载IOS5在继续阅读。IOS程序是由Objective-c语言构成,而是Objective-c语言中每一个类又分成 .h .m 文件。静态库可以将这些程序的类封装成一个.a文件,第三方应用程序只需要拿到这个.a文件和代码对应的.h文件即可使用静态库中封装的方法。总的来说IOS静态库适合去制作第三方提供的SDK,废话不多说了转载 2014-01-21 10:21:01 · 909 阅读 · 0 评论 -
iOS工程的一些概念
Workspace:简单来说,Workspace就是一个容器,在该容器中可以存放多个你创建的Xcode Project, 以及其他的项目中需要使用到的文件。使用Workspace的好处有,1),扩展项目的可视域,即可以在多个项目之间跳转,重构,一个项目可以使用另一个项目的输出。Workspace会负责各个Project之间提供各种相互依赖的关系;2),多个项目之间共享Build目录。Proje原创 2014-01-21 10:14:43 · 1252 阅读 · 0 评论 -
Objective-c中对象的Copy、MutableCopy、浅拷贝、深拷贝
对象的复制就是复制一个对象作为副本,他会开辟一块新的内存(堆内存)来存储副本对象,就像复制文件一样,即源对象和副本对象是两块不同的内存区域。对象要具备复制功能,必须实现协议或者协议,常用的可复制对象有:NSNumber、NSString、NSMutableString、NSArray、NSMutableArray、NSDictionary、NSMutableDictionarycopy:产生对转载 2014-01-12 23:03:50 · 884 阅读 · 0 评论 -
UITableViewCell的标记、移动、删除、插入
1.标记:指的是选中某一行,在这一行后面有个符号,常见的是对勾形式通过修改cell的accessoryType属性来实现,首先,在ViewDidLoad中[tableView setEditing:NO animated:YES];表示把单元格可编辑状态这只为NO[cpp] view plaincopy-(void)tableView:(转载 2014-01-12 22:12:44 · 1156 阅读 · 0 评论 -
UITableView的滑动问题
最近在做的一个项目,其中有一个场景为搜索,遇到如下问题:输入A关键词,完成搜索后,滑动到第3页;再输入B关键词,完成搜索后,仍然是在第3页,而需求是改变关键词后,页数回到第一页。那就需要在切换关键词后,将tableView滑动到顶部。在google搜索了下资料,在代码里加了一句话,问题成功解决。 [selfscrollToTop];//在reloadData后面加上- (v原创 2014-01-12 21:49:49 · 1681 阅读 · 0 评论 -
iOS四层结构之Core OS层
Core OS层Core OS层包含了很多技术的底层技术支持,在应用程序里面,尽管你没有直接使用这些底层技术,但是他们被高层的框架所使用。如果需要显示的处理安全模块或者与硬件通信,你会Core OS层上的一些框架。 Accelerate FrameworkiOS4.0引入的,包含接口执行DSP、线性代数以及图像处理计算。这个框架的优势:自己写接口封装这些底层高性能的接口,这转载 2014-01-10 11:54:28 · 1931 阅读 · 0 评论 -
iOS4层结构之Core Service层
Core Services层为所有的应用程序提供基础系统服务。可能应用程序并不直接使用这些服务,但它们是系统很多部分的基础。高阶特性下面的部分会描述Core Services层一些关键技术:一、云存储 iOS5.0引入,云存储允许你的应用程序存储用户文档和数据到云端,以及从用户的电脑和iOS设备访问这些数据。把用户的数据存在云端,意味着用户可以在任何设备上查转载 2014-01-10 11:47:35 · 2399 阅读 · 0 评论 -
iOS4层结构之Media层
Media层媒体层提供了图形、音频和视频技术支持,以达到移动设备上极佳的多媒体体验。一、图形技术高品质图形是iOS应用程序非常重要的一部分,最简单(和最有效)的方法来创建一个应用程序是使用预渲染图片与UI标准控件结合实现系统绘制。然而,有些时候你可能需要一些稍微复杂的图形,你可以使用下面的技术来管理你的图形内容:1、Core Graphics(Quartz)处理本地2D矢量图形和基转载 2014-01-10 11:45:57 · 1692 阅读 · 0 评论 -
iOS4层结构之Cocoa Touch层
苹果公司的iOS平台强力推动了iOS开发,引来了不少人从事iOS开发,也成就了一批一批的开发者,如果你是新手,请把本文作为iOS技术一览,便于你对iOS开发有个粗略的认识;如果你已经是iOS开发者,建议你收藏本文,它是你日常开发的指导工具,为你程序开发提供技术资料。 本文主要介绍:iOS 4层结构中每层结构的特性以及功能、每层结构包含的iOS开发框架。本文是在iOS7即将推出之际撰写的转载 2014-01-10 11:34:30 · 1620 阅读 · 0 评论 -
制作iOS framework
制作Framework 的好处和缺点好处: 1、如果模块间接口定义的比较完善,模块化的程序具有很好的可扩展性与内聚性; 2、物理上的模块化便于开发过程的管理与测试,尤其是在程序规模相对大。 3、如果可以使用胶水语言作为粘合剂,程序可以用很少的代价适应未来的变化。 4、可以在物理上实现 iOS 程序的模块化。不足转载 2014-01-21 10:26:29 · 928 阅读 · 0 评论 -
Mach-O 可执行文件
当我们在Xcode中构建一个程序的时候,其中有一部分就是把源文件(.m和.h)文件转变成可执行文件。这个可执行文件包含了将会在CPU(iOS设备上的arm处理器或者你mac上的Intel处理器)运行的字节码。 我们将会过一遍编译器这个过程的做了些什么,同时也看一下可执行文件的内部到底是怎样的。其实,里面的东西比你看到的要多很多。 让我们先把Xcode放一边,踏入Co转载 2014-01-21 09:32:38 · 1176 阅读 · 0 评论 -
iOS应用程序生命周期(前后台切换,应用的各种状态)详解
iOS的应用程序的生命周期,还有程序是运行在前台还是后台,应用程序各个状态的变换,这些对于开发者来说都是很重要的。 iOS系统的资源是有限的,应用程序在前台和在后台的状态是不一样的。在后台时,程序会受到系统的很多限制,这样可以提高电池的使用和用户体验。//开发app,我们要遵循apple公司的一些指导原则,原则如下:1、应用程序的状态状态如下:Not running转载 2014-01-24 11:50:15 · 784 阅读 · 0 评论 -
iOS开发隐藏键盘方法总结
下面为大家带来我整理总结的几种隐藏键盘的方法。一、隐藏自身软键盘当对于有多个UITextField控件都想通过点击“Return”来隐藏自身软键盘的情况,这时的最好办法是使用Did End on Exit事件。在点击软键盘右下角的“Return”按钮后,会触发该事件。该事件有一个sender参数表示当前文本框,这样便可以编写一个通用的事件处理方法(.m文件)- (I转载 2014-10-27 15:39:45 · 861 阅读 · 0 评论 -
layoutSubviews总结
ios layout机制相关方法- (CGSize)sizeThatFits:(CGSize)size- (void)sizeToFit——————-- (void)layoutSubviews- (void)layoutIfNeeded- (void)setNeedsLayout——————–- (void)setNeedsDisp转载 2014-09-24 10:43:06 · 819 阅读 · 0 评论 -
使用Xcode创建Cocoa Touch Static Library(静态库)
首先科普一下静态库的相关知识:程序编译一般需经预处理、编译、汇编和链接几个步骤。对于我们项目中的一些公共代码,如果想要对其进行复用,可以把这些代码编译成一个静态库文件。在链接步骤中,链接器会从库文件中取得对应的代码并生成可执行文件。静态库的执行文件中包含了库中的完整代码,但是多次使用会产生多份冗余拷贝。静态库和动态库的区别在于静态库在链接阶段被复制,与程序的运行阶段无关;动态库在程转载 2014-06-29 22:35:19 · 1691 阅读 · 0 评论 -
cocoa之动态创建类
今天我们来如何在运行时动态创建类。下面这个函数就是应用前面讲到的Class,MetaClass的概念,在运行时动态创建一个类。这个函数来自《Inside Mac OS X-The Objective-C Programming Language》。#import #import BOOL CreateClassDefinition( const char * n转载 2014-04-25 10:08:41 · 760 阅读 · 0 评论 -
事件的响应(UIResponder)、touch、UIGestureRecognizer
ios 中事件的处理接口或者说协议是由UIResponder 定义的。最主要的事件就是touch事件,touch事件是 UIAapplacation 对象 runloop 检测到并封装的。UIApplaction 对象封装好后将事件传递给UIWindeow对象。touch 事件的处理分为两步,第一个步是找到 该touch 所对应的 view,即touch 是那个在那个view上的;第二是步转载 2014-04-24 17:22:02 · 1780 阅读 · 0 评论 -
详解键值观察(KVO)
一,前言Objective-C 中的键(key)-值(value)观察(KVO)并不是什么新鲜事物,它来源于设计模式中的观察者模式,其基本思想就是:一个目标对象管理所有依赖于它的观察者对象,并在它自身的状态改变时主动通知观察者对象。这个主动通知通常是通过调用各观察者对象所提供的接口方法来实现的。观察者模式较完美地将目标对象与观察者对象解耦。在 Objective-C转载 2014-04-25 09:52:42 · 976 阅读 · 0 评论 -
ios沙盒及文件操作
iOS沙盒机制:iOS应用程序只能在为该改程序创建的文件系统中读取文件,不可以去其它地方访问,此区域被成为沙盒,所以所有的非代码文件都要保存在此,例如图像,图标,声音,映像,属性列表,文本文件等。1、每个应用程序都有自己的存储空间2、应用程序不能翻过自己的围墙去访问别的存储空间的内容3、应用程序请求的数据都要通过权限检测,假如不符合条件的话,不会被放行。通过这张图只能从表层原创 2014-02-16 19:15:05 · 1474 阅读 · 0 评论 -
iOS探索:iOS程序的build过程
解密Build日志Build过程的控制工程文件小结当我们进行开发时,如果需要运行程序,只要在Xcode中点击运行按钮(这个按钮看起来有点像在播放音乐),过一会,我们的程序就会运行在设备或者模拟器上了,看似简单的操作过程,不过在这背后隐藏了许多步骤!当然,有时候也会遇到一些错误。本文,我将从稍微高一点的角度来解读整个Build过程,并探索一下Build过程与Xcode界面上显示的pr转载 2014-01-21 09:57:44 · 1541 阅读 · 0 评论 -
ARC内存管理概要
1.ARC基本原则你还像往常一样编程,只是不能再调用retain,release,autorelease了,这基本上就是ARC的全部。2.ARC是什么认识到 ARC 是 objective-c 编译器的一个特性是很重要的,因此与 ARC 相关的一切都发 生在构建你的程序时。ARC 不是一个运行时特性(有一小部分例外,就是弱指针系统), 它也不是你从其他语言了解的垃圾回收转载 2014-01-24 14:03:53 · 865 阅读 · 0 评论 -
Objective-c 中 nil, Nil, NULL和NSNull的区别
nil: A null pointer to an Objective-C object.( #define nil ((id)0) )Nil: A null pointer to an Objective-C class.NULL: A null pointer to anything else, is for C-style memory pointers.( #d转载 2013-12-22 18:44:42 · 810 阅读 · 0 评论 -
IOS开发之NSDictionary里setValue:forKey与setObject:forKey、objectForKey与valueForKey的差异
setValue:forKey与setObject:forKey的差异在使用NSMutableDictionary的时候经常会使用setValue forKey与setObject forKey,他们经常是可以交互使用的,代码中经常每一种的使用都有。1,先看看setValue: forKey:的定义@interface NSMutableDictionary(N转载 2013-12-22 12:08:10 · 1979 阅读 · 0 评论 -
IOS UI:弹出视图/弹出模态 presentViewController与presentModalViewController(增加IOS 6.0说明)
一、主要用途 弹出模态ViewController是IOS变成中很有用的一个技术,UIKit提供的一些专门用于模态显示的ViewController,如UIImagePickerController等。弹出模态ViewController主要使用于一下这几种情形: 1、收集用户输入信息 2、临时呈现一些内容 3、临时改变工作模式 4、相应设备方向变转载 2013-11-19 09:31:03 · 13037 阅读 · 0 评论 -
斯坦福大学iOS学习教程
这位大神讲得非常清楚,英文讲解+中文翻译http://www.cocoachina.com/bbs/read.php?tid=88801&page=1原创 2013-11-04 16:05:19 · 916 阅读 · 0 评论 -
iOS文件系统
【沙盒机制】ios的ipa安装文件就如同一个个盒子一般,放在了 /user/applications目录下,以这个程序(比如goodreader)的眼光看外面的世界,他基本什么也看不到,因为他的权限如此之小,以至于他看不到在goodreader的目录外,世界上还有什么?这也就是打开goodreader后不能打开其他程序内的文档的原因。ios的ipa可以随便乱装而不用担心会像windows一样产生很转载 2013-10-17 16:25:48 · 2820 阅读 · 0 评论 -
多targets讲解
啥叫多Targets, 有啥用! 相信很多人都注意到XCode中, 有个Target的概念. 这在很多地方都有所体现, 比如打开一个工程后, 左侧的列表中有Targets一项, 而在工程界面的顶部菜单中, project里面也有多个涉及到Target的项目, 那么这个Target到底是什么呢? Apple的人是这样说的: 引用T转载 2013-07-02 13:46:22 · 998 阅读 · 0 评论 -
pad使用手势
转载 2013-07-02 13:14:18 · 2293 阅读 · 0 评论 -
不需Developper认证的真机调试(需要越狱)
今天给大家介绍另一种不需要注册iPhone/iOS Developer Program,也可以简单地在设备中运行程序的方法.制作证明书首先通过Keychain制作一个新的证明书 Keychain Access -> Certificate Assistant -> Create a Certification证明书的名称任意(需要记住,下面会用到),固有类型选择se转载 2013-07-02 13:24:45 · 1267 阅读 · 0 评论 -
UITabBarController 标签栏控制器-IOS开发
在 UIKit 中UITabbar 代表了标签栏,而 UITabBarController 对其进行了封装,令多个不同的视图管理与切换变的更加轻松。构建一个标签栏控制器,首先要为每个按钮准备一个单独的页。每一页都应被创建为UIViewController对象。构建一个控制器数组:你的应用程序可能有多个不同的试图控制器,来实现不同的功能。如果你在写一个音乐播放器,可能会有一些转载 2013-07-16 15:36:28 · 987 阅读 · 0 评论 -
UITableViewController详解
UITableViewController表格视图控制器UITableViewController类继承自UIViewController类,极大地简化了创建UITableView的过程。UITableViewController负责处理表格布局,并使用一个UITableView实例对其进行填充。可设置此控制器的窗体以支持任意导航栏或工具栏。可以通过tableView实例变量访问表格视图。转载 2013-07-16 16:50:20 · 4940 阅读 · 0 评论 -
UIViewController加载与销毁
view有两个重要circle加载view(属性) 每一个UIViewController都会有property,叫“view”,这是default的,在UIViewController初始化后,当程序某部分访问view时,这时如果view是没有在内存中存在,view controller会调用loadView方法。loadView 只有在你在代码中创建实现转载 2013-07-16 11:46:41 · 4021 阅读 · 0 评论 -
iOS中的mvc
查阅资料时,翻到的对iOS中的mvc的讲解,对我来说,讲得比较清楚,转载过来给需要的童鞋。=======================================================================我们今天谈谈cocoa程序设计中的 模型-视图-控制器(MVC)范型。我们将从两大方面来讨论MVC: 什么是MVC?M、V、C之间的交流转载 2013-11-28 11:13:37 · 1486 阅读 · 2 评论 -
利用xcodebuild和xcrun给iOS程序自动打包
今天在查阅自动化打包的相关资料,自动化打包,归根到底主要用到了xcodebuild和xcrun命令,及一些shell脚本实现自动化。了解自动化打包之前,首先了解下传统的打包方式:1) appstore 二进制程序包打开你的项目,进入“Edit Project Settings”,进入Configuration页面,选中Release点击下面的Duplicate,复制一个新的配置项出转载 2013-11-30 23:03:15 · 1895 阅读 · 0 评论 -
利用UIDevice,NSBundle,NSLocale获取手机信息
UIDevice UIDevice提供了多种属性、类函数及状态通知,帮助我们全方位了解设备状况。从检测电池电量到定位设备与临近感应,UIDevice所做的工作就是为应用程序提供用户及设备的一些信息。UIDevice类还能够收集关于设备的各种具体细节,例如机型及iOS版本等。其中大部分属性都对开发工作具有积极的辅助作用。下面的代码简单的使用UIDevice获取手机属性。转载 2013-12-07 10:54:09 · 883 阅读 · 0 评论 -
UITableView的注意点
在iOS应用中,UITableView应该是使用率最高的视图之一了。iPod、时钟、日历、备忘录、Mail、天气、照片、电话、短信、 Safari、App Store、iTunes、Game Center⋯几乎所有自带的应用中都能看到它的身影,可见它的重要性。然而在使用第三方应用时,却经常遇到性能上的问题,普遍表现在滚动时比较卡,特别是table cell中包含图片的情况时。实际上只要针对转载 2013-12-16 14:30:02 · 789 阅读 · 0 评论 -
iOS Block
今天网上找了些资料学习iOS Block,大部分都讲得很零散,且有些晦涩,有一篇个人觉得还不错,比较清楚,但也算是入门级别的,转载下来,留着以后复习。================================================================================================================IOS b转载 2013-12-29 18:10:40 · 817 阅读 · 0 评论 -
FrameWork介绍
Framework 简介Mac OS X 扩展了 framework 的功能,让我们能够利用它来共享代码和资源。framework 在概念上有点像 Window 下的库,但是比库更加强大,通过 framework 我们可以共享所有形式的资源,如动态共享库,nib 文件,图像字符资源以及文档等。系统会在需要的时候将 framework 载入内存中,多个应用程序可以同时使用同一个 framewor转载 2013-12-12 01:32:05 · 1086 阅读 · 0 评论 -
iOS的安装包:deb、ipad、pxl
前言:目前 iOS 平台上常见的安装包有三种,deb、ipa 和 pxl。其中 deb 格式是 Debian 系统(包含 Debian 和 Ubuntu )专属安装包格式,配合 APT 软件管理系统,成为了当前在 Linux 下非常流行的一种安装包。进入 2.x 时代之后有 Cydia 作者 Jay Freeman(saurik) 移植到 iPhone 平台上,一起的还有 APT 软件转载 2013-12-11 23:40:19 · 2623 阅读 · 0 评论