自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

  • 博客(43)
  • 收藏
  • 关注

翻译 1.2.5 分配和使用 Sets

你需要存储一组对象但是每个对象只存一次(剔除重复的数据)。 用集合(sets)来代替数组。. Sets 和 array非常相似。二者最大的区别就是 sets中相同对象只能被添加一次。当你第二次添加同一个对象时,sets会拒绝添加。 我们使用 NSSet类表示不可改变的 sets,

2013-11-18 13:03:25 331

翻译 1.2.4 分配和使用字典

你想把键值数据存储到一个对象中,或者你需要根据数组中的 key检索出对应的对象,不过数组满足不了这个需求,因为不容易在数组中使用一个 key 来查找对象。 一个 dictionary是一个特殊的容器,其中的每个项都包含一个 key.这是 dictionary和array最主要不同的地方之一。array的每一项(对象)都有一个数字的索引,然而 di

2013-11-18 12:57:54 254

翻译 1.23 ios中如何分配、使用数组(排序)

一个 NSArray或者其子类的对象可以存储 n个其他类型的对象。这些对象可以通过索引访问。例如,假设我们有 10 双袜子,我们刚所有的袜子从左到右放到一个平台上。我们一次叫它们:袜子1,袜子2,袜子3 等等。所以最左边的袜子叫做袜子 1,挨着它的叫做袜子2,以此类推。这样是不是比说“我红色袜子旁边的蓝色袜子”要简单的多?这就是数组做的事,它能使操作多个条目更加容易

2013-11-16 19:40:47 545

翻译 1.22 ios中使用整型或封装好的数字

正如我们用 NSString对象来存储字符串,我们可以用 NSNumber对象来存储数字。你可能会问为什么?答案很简单:允许一个对象存储数字的值可以让我们方便的把数字存到磁盘,从磁盘取出。还能用一个简单的对象存储有符号、无符号以及浮点数,不要定义和转换各种不同类型的变量。变量的类型是无穷尽的。 让我们来看看 NSNumber对象的构造函数: 

2013-11-16 18:33:09 635

翻译 1.21 ios中检查类是否在运行期间可用

解决办法使用 NSClassFronString函数。传入类的名称字符串符。若是返回值为空(nil),则表示这个类无法在这台设备上使用;反之,这个类则可在这台设备上使用。参照下面范例代码: if (NSClassFromString(@"NSJSONSerialization") != nil){/* You can u

2013-11-16 18:28:34 339

翻译 1.20 检查sdk的类方法或实例是否可用

开发过程中遇到的问题:你在最新版的 SDK上进行开发,但是你希望对运行旧版本的设备也支持。 解决办法:使用 NSObject的 instancesRespondToSelector:类方法检测指定的selector是否存在类实例中。要确认一个类是否响应本身的类方法,需使用respondsToSelector:类方法。你可以使用同样方式检测,在一个实例的实例方

2013-11-16 18:17:33 425

转载 Core Foundation 框架

Core Foundation框架 (CoreFoundation.framework) 是一组C语言接口,它们为iOS应用程序提供基本数据管理和服务功能。下面列举该框架支持进行管理的数据以及可提供的服务:群体数据类型 (数组、集合等)程序包字符串管理日期和时间管理原始数据块管理偏好管理URL及数据流操作

2013-11-16 16:49:14 379

原创 存储属性: strong,weak,unsafe 与 unretained

strong声明为 Strong类型的对象会在执行时期自动保留且在生命周期结束前都是有效的,并在结束后会自动释放。这个关键字就像是 Objective-C传统内存管理方法中的 retain。weak这是弱引用。若变量声明了这个关键字,当对象的变量指针被释放时,将会设为 nil。举例来说,假如你有两个字符串符属性,分别设为strong 引用和 weak引用

2013-11-16 16:00:00 592

转载 IOS中属性:atomic与nonatomic,assign,copy与retain的定义和区别

atomic和nonatomic用来决定编译器生成的getter和setter是否为原子操作。        atomic                设置成员变量的@property属性时,默认为atomic,提供多线程安全。                在多线程环境下,原子操作是必要的,否则有可能引起错误的结果。加了atomic,setter函数会变成下

2013-11-16 15:17:58 439

原创 iOS常用宏

//常用的IOS开发宏 #pragma mark - 界面 部分 #define NavigationBar_HEIGHT 44 //导航控制器 #define SCREEN_WIDTH ([UIScreen mainScreen].bounds.size.width) //屏幕宽度 #define SCREEN_HEIGHT ([UIScreen mainScreen].bou

2013-11-12 09:20:53 308

转载 ios 沙盒- 获取Documents,app目录

一:获取documents目录路径//1,获取家目录路径的函数:NSString *homeDir = NSHomeDirectory(); //2,获取Documents目录路径的方法:a:NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMas

2013-11-08 00:23:05 458

转载 iOS CoreAnimation

核心动画,开发人员可以为他们的应用创建动态用户界面,而无需使用低级别的图形 API,如 OpenGL 来获取高效的动画性能。 前言,核心动画的好处1.简单易用的高性能混合编程模型。2.类似视图一样,你可以通过使用图层来创建复杂的接口。   通过是CALayer来使用更复杂的一些动画。   3.轻量级的数据结构,它可以同时显示并让上百个图层产生动画效果。     控制

2013-10-28 22:15:22 296

转载 几种常用的排序算法

1 快速排序介绍:  快速排序是由东尼·霍尔所发展的一种排序算法。在平均状况下,排序 n 个项目要Ο(n log n)次比较。在最坏状况下则需要Ο(n2)次比较,但这种状况并不常见。事实上,快速排序通常明显比其他Ο(n log n) 算法更快,因为它的内部循环(inner loop)可以在大部分的架构上很有效率地被实现出来,且在大部分真实世界的数据,可以决定设计的选择,减少所需

2013-10-28 22:09:09 262

转载 iOS ASIHTTPRequest详解

ASIHTTPRequest对CFNetwork API进行了封装,并且使用起来非常简单,用Objective-C编写,可以很好的应用在Mac OS X系统和iOS平台的应用程序中。ASIHTTPRequest适用于基本的HTTP请求,和基于REST的服务之间的交互。ASIHTTPRequest功能很强大,主要特色如下:l 通过简单的接口,即可完成向服务端提交数据和从服务端获取

2013-10-28 22:07:43 392

原创 iOS 声明属性关键字讲解

atomic原子操作(原子性是指事务的一个完整操作,操作成功就提交,反之就回滚. 原子操作就是指具有原子性的操作)在objective-c 属性设置里面默认的就是atomic,意思就是setter/getter函数是一个原子操作,如果多线程同时调用setter时,不会出现某一个线程执行完setter所有语句之前,另一个线程就开始执行setter,相当于函数头尾加了锁. 这样的话并发访问性能会比

2013-10-21 20:36:21 392

原创 alloc和new的区别

“显示调用总比隐式调用要好”。new和alloc/init在功能上几乎是一致的,分配内存并完成初始化。差别在于,采用new的方式只能采用默认的init方法完成初始化,采用alloc的方式可以用其他定制的初始化方法。

2013-10-21 20:18:30 342

转载 IOS开发之Core Location

IOS 支持三种检测当前位置的方式:手机基站、Wi-Fi、和GPS,其中GPS是经度最高的,同时也是最耗费手机电量的。一般情况下在室内是无法通过GPS获 取位置信息的,通过Wi-Fi获取位置的原理是通过网络提供商的IP地址信息来获取位置,经度不是很高,最后是通过手机基站获取位置,手机开机后会连接附 近的基站塔获取信号,通过基站可以得到手机所在的位置信息,基站越密集,所获取的位置信息经度就越高。

2013-10-20 19:12:29 355

转载 IOS后台执行详解

很不错的一篇介绍iOS后台长时间执行的文章,推荐给大家。----------------------------------------------------------------------------在iOS后台执行是本文要介绍的内容,大多数应用程序进入后台状态不久后转入暂停状态。在这种状态下,应用程序不执行任何代码,并有可能在任意时候从内存中删除。应用程序提供特定的服务,

2013-10-20 19:07:16 287

转载 IOS后台播放音乐

iOS4之后就支持后台播放音频了。只需下面两步就可以实现后台播放音频操作了:1、在Info.plist中,添加"Required background modes"键,其值设置如下图所示:2、添加AVFoundation框架,然后再添加如下两段代码添加后台播放代码:[cpp] view plaincopy/

2013-10-20 18:43:18 385

转载 iOS工程中的info.plist文件的完整研究

我们建立一个工程后,会在Supporting files下面看到一个"工程名-Info.plist"的文件,这个是对工程做一些运行期配置的文件,很重要,不能删除。如果你在网上下载的工程中的这个文件名只是Info.plist,那么恭喜你,这个工程太老了,是用包含SDK2.0以前的Xcode生成的,不过没关系,不影响使用。如果你使用文本编辑器打开这个文件,你会发现这是一个XML格式的文

2013-10-20 18:34:48 368

原创 IOS中的单例模式

单例模式的意思就是只有一个实例。单例模式确保某一个类只有一个实例,而且自行实例化并向整个系统提供这个实例。这个类称为单例类。1.单例模式的要点:  显然单例模式的要点有三个;一是某个类只能有一个实例;二是它必须自行创建这个实例;三是它必须自行向整个系统提供这个实例。2.单例模式的优点:  1.实例控制:Singleton 会阻止其他对象实例化其自己的 Singlet

2013-10-19 22:48:02 232

原创 IOS多线程

ios有三种主要方法:1、NSThread。2、NSOperation。3、GCD。 1、  NSThread:调用方法如下:如果需要函数参数的话,可以通过Object传递。1.1:[NSThread detachNewThreadSelector:@selector(threadInMainMethod:) toTarget:self withObject:nil

2013-09-24 17:42:57 219

原创 synchronized

这个东西其实就是 一个加锁。如果self 其他线程访问,则会阻塞。这样做一般是用来对单例 进行一个死锁的保护@synchronized(self) {//something like this   kGoableValue = _shareInstance;}一、当两个并发线程访问同一个对象object中的这个synchroniz

2013-09-15 18:33:17 265

原创 深拷贝和浅拷贝 Deep copy and Shadow copy

Objective-C中的copy和c++的一样分深拷贝和浅拷贝,怎样区分这两个对象呢?我的理解是:   (1)深拷贝,就是新拷贝一块内存交给对象使用。   (2)浅拷贝,就是觉得拷贝内存太浪费,直接给你我的地址吧,相当于retain。

2013-09-15 17:55:17 757

转载 iOS内存管理

有时候一个所有者创建一个对象后,会立刻将该对象的指针传递给其它所有者。这时,这个创建者不希望再拥有这个对象,但如果立刻给它发送一个release消息会导致这个对象被立刻释放掉——这样其它所有者还没有来得及保留该对象。解决这个两难问题的方法是,给对象发送一个autorelease消息:这样创建者不再拥有该对象的所有权;该对象成为自动释放的对象,但是不会立刻被释放掉;其它所有者可以有时间保留或复制该对

2013-09-15 17:44:54 261

转载 常见排序方法

排序算法在面试过程中是经常会考的,这是很基础的,面试官觉得你应该很熟悉这些东西,如果你半个小时内写不出来,那基本就给跪了,因为这真的是狠基础狠基础的东西,所以我们得对一些基本的排序算法烂熟于胸,对这些排序思想,效率了如指掌,才能让面试官觉得你还行。基本的排序算法有:直接插入排序,冒泡排序,简单选择排序,shell排序,归并排序,快速排序,堆排序。其中归并,快速,堆排序是面试时候比较喜欢考的,因为这

2013-09-12 14:38:19 264

转载 IOS常用函数

1、获取本地的语言[cpp] view plaincopy+ (NSString *)getLocalLanguage  {      NSString *language = [[[NSUserDefaults standardUserDefaults] objectForKey:@"AppleLanguages"] objectA

2013-09-06 20:08:52 299

转载 关于TableViewCell生成时dequeueReusableCellWithIdentifier的认识

在使用TableView的时候,下面一段代码是必须的,也是最标准的:[cpp] view plaincopyprint?- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {      

2013-09-01 19:59:34 216

原创 UIWindowLevel

UIWindow & UIWindowLevel笔记一、UIWindow是一种特殊的UIView,通常在一个程序中只会有一个UIWindow,但可以手动创建多个UIWindow,同时加到程序里面。UIWindow在程序中主要起到三个作用:  1、作为容器,包含app所要显示的所有视图  2、传递触摸消息到程序中view和其他对象  3、与UIViewControll

2013-08-29 16:18:36 259

原创 GCD(Grand Central Dispatch)

GCD(Grand Central Dispatch)1. GCD: 异步执行任务的技术之一,一般是将应用程序中记述的线程管理用代码在系统级实现,由于是系统级的管理,这样的话将有更好的线程效率。2. 使用方法如下:dispatch_async(queue, ^{ // 想执行的任务});开发者要做的只是定义想执行的任务并追加到适当的Dispatch Q

2013-08-22 05:43:31 420

转载 NSJSONSerialization介绍

ios5中apple增加了解析JSON的api——NSJSONSerialization。网上已经有人做过测试,NSJSONSerialization在效率上完胜SBJSON、TouchJSON、YAJL、JSONKit、NextiveJson。详情见这里。既然apple为我们提供了这么良好的工具,我们没理由不用吧。  NSJSONSerialization提供了将JSON数据转换为Fou

2013-08-22 05:40:02 283

转载 NSUserDefaults读取和写入自定义对象

NSUserDefaults可以存取一些短小的信息。比如存入再读出一个字符串到NSUserDefaults:[cpp] view plaincopyNSString *string = [NSString stringWithString @"hahaha"];  NSUserDefaults *ud = [NSUserDefault

2013-08-21 03:20:44 219

原创 UIApplication 深入学习

很多时候,我们不需要关心这个类,我们很少继承这个类,偶尔会调用这个类的api来实现一些功能,但是不可否认,这个类是iOS编程中很重要的一个概念。UIApplication的核心作用是提供了iOS程序运行期间的控制和协作工作。每一个程序在运行期必须有且仅有一个UIApplication(或则其子类)的一个实例。回想一下我在前面的文章“main函数研究”的文章中提到的main函数的代码,可以看

2013-08-21 02:50:19 267

转载 NSNotificationCenter 的详细说明

NSNotificationCenter 的详细说明  1. 定义一个方法      -(void) update{       } 2. 对象注册,并关连消息     [[NSNotificationCenter defaultCenter]      addObserver:self selector:@selector(update)

2013-08-19 19:55:18 206

原创 IOS中关于Http解析

IOS之同步请求、异步请求、GET请求、POST请求1、同步请求可以从因特网请求数据,一旦发送同步请求,程序将停止用户交互,直至服务器返回数据完成,才可以进行下一步操作,2、异步请求不会阻塞主线程,而会建立一个新的线程来操作,用户发出异步请求后,依然可以对UI进行操作,程序可以继续运行3、GET请求,将参数直接写在访问路径上。操作简单,不过容易被外界看到,安全性

2013-08-19 18:17:23 385

转载 自定义UITableViewCell

自定义UITableViewCell有时候我们需要自己定义UITableViewCell的风格,其实就是向行中添加子视图。添加子视图的方法主要有两种:使用代码以及从.xib文件加载。“”上篇文章介绍了如何用UITableView显示表格,并讲了几种UITableViewCell的风格。不过有时候我们需要自己定义UITableViewCell的风格,其实就

2013-08-05 15:52:36 268

转载 IOS: 文件的增加删除查询

IOS: 文件的增加删除查询//创建文件-(void)CreateFile:(NSString*)path fileName:(NSString*)filename{    //创建文件管理器    NSFileManager *fileManager = [NSFileManager defaultManager];        //更改到待操作

2013-08-03 17:39:03 337

转载 IOS:XCode快捷键

XCode快捷键1. 文件CMD + N: 新文件CMD + SHIFT + N: 新项目CMD + O: 打开CMD + S: 保存CMD + SHIFT + S: 另存为CMD + W: 关闭窗口CMD + SHIFT + W: 关闭文件2. 编辑CMD + [: 左缩进CMD + ]: 右缩进CMD + CTRL + LEFT:

2013-08-03 17:38:00 296

转载 const int a; int const a; const int *a; int * const a; int const * a const; 之间的区别

const int a; int const a; const int *a; int * const a; int const * a const; 之间的区别const int a; int const a; 这两个写法是等同的,表示a是一个int常量。const int *a; 表示a是一个指针,可以任意指向int常量或者int变量,它总是把它所指向的目标当作一个

2013-08-03 17:36:36 809

转载 IOS:NSString 和NSData

NSString 和NSDataNSString 和NSData     NSString 转换成NSData 对象       NSData* xmlData = [@"testdata" dataUsingEncoding:NSUTF8StringEncoding];       NSData 转换成NSString对象    NSData *

2013-08-03 17:35:55 307

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除