iOS 开发
水木米
一个关注互联网乐于学习积极乐观的程序员
展开
-
iPhone/Mac Objective-C内存管理教程和原理剖析
版本 1.1 发表于2010-03-08前言初学objectice-C的朋友都有一个困惑,总觉得对objective-C的内存管理机制琢磨不透,程序经常内存泄漏或莫名其妙的崩溃。我在这里总结了自己对objective-C内存管理机制的研究成果和经验,写了这么一个由浅入深的教程。希望对大家有所帮助,也欢迎大家一起探讨。 此文涉及的内存管理是针对于继承于NSObject的Class。转载 2012-03-08 15:19:03 · 417 阅读 · 0 评论 -
object-c学习笔记:new vs alloc init
在object-c基础教程这本书里老是可以看见类似下面这种代码,我这小菜鸟就纳闷了,啥区别啊,看上去都一样么。网上找了找,找到一些说法,这里先摘出来。 someClass* object = [someClass new];or someClass* object = [[someClass alloc] init];其实是一样的,某位老兄是这样说的,new在内部调转载 2012-03-08 15:30:37 · 567 阅读 · 0 评论 -
Objective-C – 定义一个类
定义一个类Much of object-oriented programming consists of writing the code for new objects—defining new classes. Objective-C 中类包括两部分接口部分 - 声明方法和实例变量,类型以及他的基类实现部分- 类的实际定义部分 (包括方法的实现体)他们通转载 2012-03-08 17:50:53 · 1663 阅读 · 0 评论 -
phoneview
phoneview,查看iphone数据原创 2012-03-27 09:54:26 · 613 阅读 · 0 评论 -
好文,简单干练的总结了 objective-c与C++的区别
objective-c与C++的区别Objective-C,是在C的基础上,加入面向对象特性扩充而成的编程语言。Objective-C主要应用于Mac OS X和iOS 系统,可以在任何gcc支持的平台上进行编译,因为gcc原生支持Objective-C。 程序例子: #import int main(int argc, char *argv[]){ NSAutorelease转载 2012-03-12 09:37:43 · 1275 阅读 · 0 评论 -
iOS开发3:UITextField控件的属性
在 Xcode 4.2 中使用 IB 给视图拖上去一个文本框后,选中文本框,可以在Attribute Inspector中设置其各种属性。Attribute Inspector 分为三部分,分别是 Text Field、Control 和 View 部分。我们重点看看 Text Field 部分。Text Field 部分有以下选项:1、Text :设置文本框的默认转载 2012-04-11 15:56:16 · 1587 阅读 · 1 评论 -
IOS开发网络篇之──ASIHTTPRequest下载示例(支持断点续传)
一、创建网络请求队列 首先,创建网络请求队列,如下: ASINetworkQueue *que = [[ASINetworkQueue alloc] init]; self.netWorkQueue = que; [que release]; [self.netWorkQueue reset]; [s转载 2012-04-11 16:10:04 · 726 阅读 · 0 评论 -
object-c中通过异步方式实现下载
在iphone开发中,异步操作是一个永恒的话题,尤其当iphone手机需要和远程服务器进行交互时,使用异步请求是很普遍的做法。通常,这需要NSURLConnection和NSOperation结合起来使用。这方面的资料网络上自然有不少的介绍,不过要找一个能运行的代码也并不容易。许多文章介绍的并不全面,或者使用了过时的SDK,在新IOS版本下并不适用(当前最新的ios是4.2了)。这些代转载 2012-04-24 11:09:27 · 2136 阅读 · 0 评论 -
Objective-c 根据某一个时区的时间获取特定时区的时间
//获取默认时区的时间字符串 NSDateFormatter *formatter = [[NSDateFormatter alloc] init]; [formatter setDateFormat:@"yyyy-MM-dd HH:mm:ss"]; NSString *nowStr = [formatter stringFromDate:[NSDate dat转载 2012-04-18 11:39:40 · 2101 阅读 · 0 评论 -
object-c学习:category 和 protocol区别
这两个都是mac下的协议,用法有点像C++中的函数重载和虚函数。首先Category: 它可以给原有的类增加新的方法,而不用重新建一个类,然后在原有的类的基础上使用这个方法,但是不能给类增加新的数据成员。eg: 给 NSArray增加(DeepCopy)方法声明: @interface NSArray(DeepCopy) -(NSArray *)转载 2012-04-23 17:15:39 · 3131 阅读 · 0 评论 -
IPhone之ASIFormDataRequest POST操作架构设计
ASIFormDataRequest的POST操作架构设计,方法由自己定义。 //开启iphone网络开关[UIApplication sharedApplication].networkActivityIndicatorVisible = YES; ASIFormDataRequest *request = [[ASIFormDa转载 2012-05-28 20:18:19 · 686 阅读 · 0 评论 -
iphone中UINavigationController的用法
//UINavigationController //UITabBarController // //UISplitViewController 只能在pad上有。 1.UINavigationController是用于构建分层应用程序的主要工具,它维护了一个视图控制器栈,任何类型的视图控制器都可以放入.它在管理,以及换入和换出转载 2012-05-10 11:11:53 · 866 阅读 · 0 评论 -
UIScrollView 原理详解
在滚动过程当中,其实是在修改原点坐标。当手指触摸后, scroll view会暂时拦截触摸事件,使用一个计时器。假如在计时器到点后没有发生手指移动事件,那么 scroll view 发送 tracking events 到被点击的 subview。假如在计时器到点前发生了移动事件,那么 scroll view 取消 tracking 自己发生滚动。 子类可以重载touchesShou转载 2012-05-28 15:14:15 · 532 阅读 · 0 评论 -
ASIHTTPRequest类库简介和使用说明
ASIHTTPRequest类库简介和使用说明(一)使 用iOS SDK中的HTTP网络请求API,相当的复杂,调用很繁琐,ASIHTTPRequest就是一个对CFNetwork API进行了封装,并且使用起来非常简单的一套API,用Objective-C编写,可以很好的应用在Mac OS X系统和iOS平台的应用程序中。ASIHTTPRequest适用于基本的HTTP请求,和基于R转载 2012-05-28 21:00:08 · 841 阅读 · 0 评论 -
ASIHTTPRequest 详解, http 请求终结者
目录目录发起一个同步请求创建一个异步请求队列请求请求队列上下文ASINetworkQueues, 它的delegate提供更为丰富的功能取消异步请求安全的内存回收建议向服务器端上传数据下载文件获取响应信息获取请求进度cookie的支持大文件断点续传ASIDownloadCache 设置下载缓存多种的缓存并存转载 2012-05-28 21:32:22 · 898 阅读 · 0 评论 -
数据类型/对象类型介绍(2)UINavigationController
UINavigationController iPhone导航控制器/导航栏 是在iPhone程序中广为使用的用户数据互动方式。这是一个简单的导航栏截图,我们可以设置其内置UIView的title,而导航栏会显示出这个title。而不是设置导航栏的title。我们也可以设置其左侧,或者右侧的按钮或者自定义视图对象。我们下面来一步一步的看看导航栏的使用:1,创建并使用一个UI转载 2012-05-10 11:14:45 · 492 阅读 · 0 评论 -
UITabBarController使用总结(重大更新)
今天搞了半天的UITabBarController,一开始打算在主控制窗口mainViewController中添加UITabBarController,首先通过Interface Builder添加,发现添加的UITabBarController无法跟xcode中的输出口(IBOutlet)连上,加入到view中无法通过切换tab来切换viewcontroller。后来换成通过代码创建。转载 2012-05-10 11:28:26 · 984 阅读 · 0 评论 -
UITableView的使用大全
首先、对UITableView进行讲解,下面有对它进行实际的应用UITableView 显示大型内容的列表 单行,多列 垂直滚动,没有水平滚动 大量的数据集 性能强大,而且普遍存在于iPhone的应用程序中TableView转载 2012-06-03 08:53:42 · 9576 阅读 · 2 评论 -
Xcode targets && project 区别
Xcode project 是 new target 的基础模板。所有的新建target都是在project 的基础上的。相信很多人都注意到XCode中, 有个Target的概念. 这在很多地方都有所体现, 比如打开一个工程后, 左侧的列表中有Targets一项, 而在工程界面的顶部菜单中, project里面也有多个涉及到Target的项目, 那么这个Target到底是什么呢?转载 2012-05-17 16:39:02 · 2161 阅读 · 1 评论 -
IOS 开发环境,证书和授权文件是什么?
一、成员介绍1. Certification(证书)证书是对电脑开发资格的认证,每个开发者帐号有一套,分为两种:1) Developer Certification(开发证书)安装在电脑上提供权限:开发人员通过设备进行真机测试。可以生成副本供多台电脑安装;2) Distribution Certification(发布证书)安装在电脑上提供发布iO转载 2012-06-05 20:43:21 · 543 阅读 · 0 评论 -
UIScrollView 滚动视图—IOS开发
UIScrollView 类负责所有基于 UIKit 的滚动操作。一、创建[java] view plaincopyprint?CGRect bounds = [ [ UIScreen mainScreen ] applicationFrame ] ; UIScrollView* scrollView = [ [UIScroll转载 2012-06-05 17:53:35 · 1018 阅读 · 0 评论 -
iphone开发中 viewWithTag 什么意思
就是根据tag获取view比如在view里加了一个view button 然后设置他的tag为 101然后(UIButton *)[当前view viewWithTag:101] 就可以去到你加的button这个一般用在表格的cell里转载 2012-06-06 15:17:58 · 1630 阅读 · 0 评论 -
浅析iOS移动设备用户界面设计11大精粹
作为一款革命性产品,iOS设备(这里泛指iPhone和iPod touch,当然还有iPad)为我们带来了许多意想不到的创意和惊喜。过去两个月多的时间里,我们认真地咀嚼《iPhone Human Interface Guidelines》,感悟字里行间透露着的苹果的细致与智慧。兴奋、激动之余,有太多的惊喜想与大家分享。但无论从时间上还是精力上,130页的完整套餐肯定会让所有的人吃不消。我们收集转载 2012-06-06 16:27:58 · 1345 阅读 · 0 评论 -
dequeueReusableCellWithIdentifier的运行机制
UITableViewCell *cell = nil; if([indexPath row] == 0) { static NSString *kDisplayCell_ID = @"DisplayCellID"; //队列?为什么?n 叫集合 //类型。 cell = [self.tableView dequeueRe原创 2012-05-18 15:20:26 · 9447 阅读 · 2 评论 -
UILabel自动换行
CGSize labelSize = [str sizeWithFont:[UIFont boldSystemFontOfSize:17.0f]constrainedToSize:CGSizeMake(280, 100) lineBreakMode:UILineBreakModeCharacterWrap]; // str是要显示的字符串UILabel *pattern转载 2012-06-06 21:53:40 · 1110 阅读 · 0 评论 -
iOS应用的真机调试
必须条件:99美元的帐号,没有这个就不用再往下看了。 首先,登录到http://developer.apple.com/devcenter/ios/index.action,如果已经购买了iPhone Develop Program(iDP),登录进去后,页面右上角会看到如下图所示的页面: 点击第一项:iOS Provisioning Portal,然后转载 2012-06-07 20:22:04 · 558 阅读 · 0 评论 -
为什么要在addsubview:一个view对象后,release它
先看代码:123IMGView *imgView = [[IMGView alloc] initWithFrame:CGRectMake(10, 0, 300, 300)];[self.view addSubview:imgView];[imgView release];为什么imgView要release呢?可能很多人跟我转载 2012-05-20 15:54:04 · 1064 阅读 · 0 评论 -
addSubview和insertSubview的区别
addSubview 是将view加到所有层的最顶层相当于将insertSubview的atIndex参数设置成view.subviews count即[view addSubview:oneview] == [view insertSubview:oneview atIndex:view.subviews count]addSubview是加到最后in转载 2012-06-07 15:14:30 · 3670 阅读 · 0 评论 -
让你的应用支持新iPad的Retina显示屏
一、应用图片标准iOS控件里的图片资源,苹果已经做了相应的升级,我们需要操心的是应用自己的图片资源。就像当初为了支持iPhone 4而制作的@2x高分辨率版本(译者:以下简称高分)图片一样,我们要为iPad应用中的图片制作对应的高分版本。我知道不少开发者很有预见性的早在iOS 5.0 SDK上就完成了这一步升级。可是我还是要强调一点,那就是之前 Michael Jurewitz (@Jur转载 2012-06-09 17:27:50 · 21520 阅读 · 0 评论 -
在Xcode 4下编译发布与提交App到AppStore
1. iOS Provisioning Portal 和iTunes Connect 没有变,下载与安装.mobileprovision文件与以前一下。2. Xcode 4 整合相关的工具(All in One), 集成了Organizer与Application Loader.Xcode4多了Run/Build Scheme的概念,指以前的编译的选项如 device/simulato转载 2012-06-12 21:29:35 · 1172 阅读 · 0 评论 -
xcode4的环境变量,Build Settings参数,workspace及联编设置
一、xcode4中的环境变量$(BUILT_PRODUCTS_DIR)build成功后的,最终产品路径--可以在Build Settings参数的Per-configuration Build Products Path项里设置$(TARGET_NAME)目标工程名称$(SRCROOT)工程文件(比如Nuno.xcodeproj)的路径 $(转载 2012-05-24 15:30:31 · 942 阅读 · 0 评论 -
XCode4 App Store提交小结
本文建立在你的应用程序已开发完成的基础上本文以理清流程为主本文的内容以Distribution为准,但是所附的参考资料也有对Ad Hoc的说明三种证书(Development、Distribution、Ad Hoc)的区别请参考:http://blog.sina.com.cn/s/blog_68444e230100srdn.html本文引用的官方资料以XCode 3为准,XCode转载 2012-06-12 21:33:43 · 1209 阅读 · 0 评论 -
contentSize、contentInset和contentOffset区别
这几个都是在ios程序中,经常会注意到的一些小细节,能否真正了解这些,对写ios程序也有很大的好处。frame 是UIView中表示此view的一个矩形面积,包括了view在它的superview中的一些几何上的标识。有起始坐标,也就是origin(CGPoint)和这个矩形面积的宽(width)和高(height)bounds 每个view,除了有对应它的superview的相关转载 2012-06-14 14:45:16 · 972 阅读 · 0 评论 -
IOS 多线程的一些总结
IOS 多线程 有三种主要方法(1)NSThread(2)NSOperation(3)**下面简单介绍这三个方法 1.NSThread 调用方法如下: 如函数需要输入参数,可从object传进去。 (1) [NSThread detachNewThreadSelector:转载 2012-05-25 20:00:08 · 476 阅读 · 0 评论 -
xcode4.2 真机联机测试 adhoc
第一步:取得目标机器的UDID(Unique Device Identifier )第二步:生成包含UDID的Provision file第三步:生成ipa第一步启动iTune,连接设备。选取设备,在Summary页面,可以看到Serial Number(序列号)。点击Serial Number(看上去是文字,实际可以点的,Serial Number就变成了UDID转载 2012-06-14 22:00:39 · 1831 阅读 · 0 评论 -
IOS APP发布的几个要点
Android和IOS的app发布的流程有一个相同之处,就是都需要先将编译好的app签名,然后上传到market里,但两者的复杂度是冰火两重天。Android可以手动通过集成在eclipse里的工具进行签名,或者可以用ant进行自动化签名。但IOS app的发布过程非常的痛苦。 发布IOS app有两种方式,一种称为AD_HOC,由于这种方式需要预先获取设备的UDID,因此适合转载 2012-06-14 20:55:16 · 604 阅读 · 0 评论 -
xcode4发布测试-打包(Archive),官方文档有误
大哥 你好! 我现在安装了证书,但是看不到 文摘所说的这一步的 ad hoc证书是怎么回事呢?:1.1 选择ad hoc证书.在“CodeSigning”栏,选择你在文章(“iOS程序发布测试3-生成ad hoc证书”)生成的发布证书(ad hoc),希望大哥加Q 416392156 交流一下 谢谢了!我现在刚安装好证书,有些地方不太明白原文地址:xcode4发转载 2012-06-14 21:52:02 · 746 阅读 · 0 评论 -
IOS开发之触摸与点击事件:UITapGestureRecognizer与UIPanGestureRecognizer应用
UITapGestureRecognizer与UIPanGestureRecognizer应用: 一:UITapGestureRecognizer应用:- (void)singleOne:(UITapGestureRecognizer *)sender { }//将相应事件发生时的动作写入函数- (void)singleTwo:(UITapGestureRecognizer *)sen转载 2012-05-25 11:41:45 · 1811 阅读 · 1 评论 -
GCD之dispatch queue
iOS中多线程编程工具主要有: NSThreadNSOperationGCD这三种方法都简单易用,各有千秋.但无疑GCD是最有诱惑力的,因为其本身是apple为多核的并行运算提出的解决方案.虽然当前移动平台用双核的不多,但不影响GCD作为多线程编程的利器(ipad2已经是双核了,这无疑是一个趋势).http://www.cnblogs.com/scorpiozj/archive/2转载 2012-05-25 20:08:24 · 564 阅读 · 0 评论 -
WWDC2010 Session206 介绍iPhone上的Blocks和Grand Central Dispatch
Grand Central Dispatch使用GCD,可以让你的程序不会失去响应. 多线程不容易使用,用了GCD,会让它变得简单。你无需专门进行线程管理, 很棒!让你的程序保持响应的原则:1. 不要柱塞主线程2. 把工作一到其他线程中做。3. 做完后更新主线程的UI.没有GCD的代码:- (void)addTweetWithMsg:(NSS转载 2012-05-25 20:02:57 · 589 阅读 · 0 评论