随笔分类 - IOS开发-----基础
摘要:ASIFormDataRequest实现上传图片print?UIImage *im = [UIImage imageWithContentsOfFile:path];//通过path图片路径获取图片NSData *data = UIImagePNGRepresentation(im);//获取图片数据/*ios中获取图片的方法有两种,一种是UIImageJPEGRepresentation ,一种是UIImagePNGRepresentation前者获取到图片的数据量要比后者的小很多。。*/NSMutableData *imageData = [NSMutableData dataWithDa
阅读全文
摘要:ARC工程中添加非ARC文件转自http://blog.csdn.net/nicktang/article/details/6792972Automatic Reference Counting (ARC) 是一个编译期的技术,利用此技术可以简化Objective-C编程在内存管理方面的工作量。ARC与非ARC在一个项目中同时使用,1,选择项目中的Targets,选中你所要操作的Target,2,选Build Phases,在其中Complie Sources中选择需要ARC的文件双击,并在输入框中输入:-fobjc-arc,如果不要ARC则输入:-fno-objc-arcApple 文档ht
阅读全文
摘要:iOS高效开发必备的9款Objective-C类库以及使用转载:http://blog.sina.com.cn/s/blog_8f32dc2501014f67.htmlMBProgressHUD(进展指示符库)地址:https://github.com/jdg/MBProgressHUDA:苹果的应用程序一般都会用一种优雅的,半透明的进度显示效果,不过这个API是不公开的,因此你要是用了,很可能被清除出AppStore。而 MBProgressHUD提供了一个替代方案,而且在用户角度上,实现的效果根本看不出和官方程序有什么差别。同时还提供了其他附加功能,比如虚拟进展 指示符,以及完成提示信息。
阅读全文
摘要:iOS地图位置开发转载自:http://www.cnblogs.com/tangbinblog/archive/2012/07/11/2586472.htmliPhone SDK提供了三个类来管理位置信息:CLLocation CLLocationManager 和 CLLHeading(不常用)。除了使用GPS来获取当前的位置信息外,iPhone也可以基于WiFi基站和无线发射塔来获得位置信息。GPS的精度最高,可以精确到米级别,但是也最耗电。------------CLLocationCLLocation类代表一个位置信息,其中还包括了方向和速度。比如我在长安街188号以5公里/小时的速度
阅读全文
摘要:CLLocation学习转载自:http://linwwwei.iteye.com/blog/11025551:CLLocationDegrees 经纬度CLLocationDegrees latitude = theLocation.coordinate.latitude;CLLocationCoordinate2Dcoordinate = theLocation.coordinateCLLocationDegrees longitude = theLocation.coordinate.longitude;2:CLLocationAccuracy 精度有四个值:kCLLocationAcc
阅读全文
摘要:iOS之KVC和KVO原文转载:http://www.cnblogs.com/ouyangfang/archive/2012/02/14/2350588.html一、KVC(key-value-coding)1、只针对类属性,设置键值对2、设置setValue: forKey:,即forKey只能为类属性3、取值valueForKey二、KVO(key-value-observing)被观察者的属性发生改变时,通知观察者1、利用KVC对类属性进行设置2、注册observing对象addObserver:forKeyPath:options:context:3、观察者类必须重写方法 observ
阅读全文
摘要:ios 中生成随机数ios 有如下三种随机数方法:1. srand((unsigned)time(0)); //不加这句每次产生的随机数不变 int i = rand() % 5; 2. srandom(time(0)); int i = random() % 5;3. int i = arc4random() % 5 ;注:rand()和random()实际并不是一个真正的伪随机数发生器,在使用之前需要先初始化随机种子,否则每次生成的随机数一样。arc4random() 是一个真正的伪随机算法,不需要生成随机种子,因为第一次调用的时候就会自动生成。而且范围是rand()的两倍。在iPh...
阅读全文
摘要:IOS开发 Blocks详解从Mac OS X 10.6以及iOS 4开始,苹果在GCC和Clang编译器中为C语言引入了一个新扩展:Blocks,使得程序员可以在C、Objective-C、C++和Objective-C中使用闭包。Blocks有点像函数,但是它可以在其它函数或方法中进行声明和定义,同时它还是匿名的(匿名函数),并可以捕获其所在作用域中的变量(闭包特性)。Blocks的语法Blocks和C语言中的函数指针有点类似,如果你了解函数指针的话你会发现Blocks的会很容易掌握。下面分别是一个C函数指针和一个Blocks的声明:123int (*foo)(int, int);int
阅读全文
摘要:前面分别讲了delegate、notification和KVO的实现原理,以及实际使用步骤,我们心中不禁有个疑问,他们的功能比较类似,那么在实际的编程中,如何选择这些方式呢? 在网上看到一个博客上详细的分析了三者之间的区别以及各自的优势,博文地址为http://blog.shinetech.com/2011/06/14/delegation-notification-and-observation/,因为博文是用英文写的,下面将其翻译成中文。 在开发ios应用的时候,我们会经常遇到一个常见的问题:在不过分耦合的前提下,controllers间怎么进行通信。在IOS应用不断的出现三种模式来实现这
阅读全文
摘要:在iPhone上是采用sqlite进行数据存储是我一种比较习惯性的做法。一般在其他平台也比较习惯用sqlite,比如android。而iphone上有一些封装好的第三方框架提供使用,更节省了许多时间。如:Sqlitepersistentobjects ,FMDB。今天查找了这个两个框架,感觉FMDB的风格更符合我的使用,其实两者是各有优点的,只是看个人喜好而已。以下是FMDB的一些基本使用,FMDB框架其实只是一层很薄的封装,主要的类也就两个:FMDatabase和FMResultSet;其中的FMResultSet对象让我想起了android中sqlite的cursor集合啊。FMDB的gi
阅读全文
摘要:1)componentsSeparatedByString:截取指定字符串;2) pathForResource:获取程序运行时目录3) objectAtIndex:获取当前索引的字符串;4) rangeOfString:获取指定短字符串在长字符串中的开始,结尾索引值;5) stringWithContentsOfFile:按行读取文件6) componentsSeparatedByString:@"\n"];换行分割字符串;7) NSEnumerator *nse = [lines objectEnumerator];将数组转换为NSEnumerator,可向前读取数据;
阅读全文
摘要:用法总结:NSArray,NSSet,NSDictionaryFoundation framework中用于收集cocoa对象(NSObject对象)的三种集合分别是:NSArray 用于对象有序集合(数组)NSSet 用于对象无序集合 (集合)NSDictionary用于键值映射(字典)以上三种集合类是不可变的(一旦初始化后,就不能改变)以下是对应的三种可变集合类(这三种可变集合类是对应上面三种集合类的子类):NSMutableArrayNSMutableSet 可修改的集合。主要用于集合运算(并集,交集,差集)NSMutableDictionary 允许用户添加和删除key和value注:
阅读全文
摘要:协议,是通过网络,计算机使用者进行通讯后,互相进行约定规定的集合。两个类进行通讯,用协议就比较方便。下面是 CocoaChina 版主“angellixf”为新手写的协议入门介绍以及代码例子,希望对刚入门开发者有所帮助一、说明 1.协议声明了可以被任何类实现的方法 2.协议不是类,它是定义了一个其他对象可以实现的接口 3.如果在某个类中实现了协议中的某个方法,也就是这个类实现了那个协议。 4.协议经常用来实现委托对象。一个委托对象是一种用来协同或者代表其他对象的特殊对象。 5:委托,就是调用自己定义方法,别的类来实现。 6.新特性说明 @optional预编译指令:表示可以选择实现的方法 @r
阅读全文
摘要:NSOperation的用法:多线程编程是防止主线程堵塞,增加运行效率等等的最佳方法。而原始的多线程方法存在很多的毛病,包括线程锁死等。在Cocoa中,Apple提供了NSOperation这个类,提供了一个优秀的多线程编程方法。1) 将想在另外一个线程的工作单独成类,并设置其父类为NSOperation:@interface ImageLoadingOperation : NSOperation { NSURL *imageURL; //这个例子里面需要传入一个图片地址,所以定义一个NSURL变量 id target; //由于需要返回一些值,所以需要一个对象参数返回要被返回的对象(运行此线
阅读全文
摘要:a. 关于变量的作用域;b.静态变量(static);c. atomic和nonatomic ;关于变量的作用域;protected —Methods defined in the class and any subclasses can directly access the instance variables that follow.This is the default case.该类和所有的子类中的方法可以直接访问这样的变量,这是默认的。private —Methods defined in the class can directly access the instance var
阅读全文
摘要:IOS 关键字#synthesize关键字: 根据@property设置,自动生成成员变量相应的存取方法,从而可以使用点操作符来方便的存取该成员变量 。@implementation 关键字,表明类的实现 @end 结束self 关键字 :类似于java中的this,是隐藏参数,指向当前调用方法的类。super 关键字 :调用父类的方法。self = [superinit] 这里不是判断self与[superinit]是否相等,而是判断是否可以成功初始化。[super init]:父类初始化成功的话,通过=给self,这样self成为一个非空对象,整个来说即非false(非NO)。#impor
阅读全文
摘要:如果你刚开始接触 iOS 或 Mac OS X 编程,首先要学习一点编程语言 Objective-C 入门知识。Objective-C 并不是一门复杂的语言,经过一段时间的接触,你就能体会到它的优雅。Objective-C 语言实现了严格的面向对象编程。它扩展了标准 ANSI C 语言,增加了定义类和方法的语法。它还推行类和接口的动态扩展性,使任何类都能适配和采用。如果你已经掌握了 ANSI C 语言,下面的内容能够帮助你掌握 Objective-C 的基本语法。如果你有其他面向对象编程语言的基础,你会发现 Objective-C 中含有大量传统的面向对象概念,例如封装、继承、多态性等。反过来
阅读全文
摘要:一种是通过#import方式引入; 另一种是通过@class引入;#improt: 会包含被引用类的所有信息;@class方式只是告诉编译器在A.h文件中 B *b 只是类的声明,具体这个类里有什么信息,这里不需要知道,等实现文件中真正要用到时,才会真正去查看B类中信息;1、#import方式会包含被引用类的所有信息,包括被引用类的变量和方法;@class方式只是告诉编译器在A.h文件中 B *b 只是类的声明,具体这个类里有什么信息,这里不需要知道,等实现文件中真正要用到时,才会真正去查看B类中信息;2、使用@class方式由于只需要只要被引用类(B类)的名称就可以了,而在实现类由于要用到.
阅读全文
摘要:Core Animation基础Core Animation利用了硬件加速和架构上的优化来实现快速渲染和实时动画。当视图的drawRect:方法首次被调用时,层会将描画的结果捕捉到一个位图中,并在随后的重画中尽可能使用这个缓存的位图,以避免调用开销很大的drawRect:方法。这个过程使Core Animation得以优化合成操作,取得期望的性能。Core Animation把和视图对象相关联的层存储在一个被称为层树的层次结构中。和视图一 样,层树中的每个层都只有一个父亲,但可以嵌入任意数量的子层。缺省情况下,层树中对象的组织方式和视图在视图层次中的组织方式完全一样。但是,您可以在 层树中添加
阅读全文
浙公网安备 33010602011771号