随笔分类 - IOS
摘要:1栈 - 有编译器自动分配释放 2堆 - 一般由程序员分配释放,若程序员不释放,程序结束时可能由OS回收 3全局区(静态区),全局变量和静态变量的存储是放在一块的,初始化的全局变量和静 态变量在一块区域,未初始化的全局变量和未初始化的静态变量在相邻的另一块区域。 - 程序结束释放 4另外还有一个专门放常量的地方。 - 程序结束释放 在函数体中定义的变量通常是在栈上,用malloc, calloc, realloc等分配内存的函数分 配得到的就是在堆上。在所有函数体外定义的是全局量,加了static修饰符后不管在哪 里都存放在全局区(静态区),在所有函数体外定义的static变量表示在该文件中有
阅读全文
摘要:1、调用 自带mail02[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"mailto://admin@hzlzh.com"]];03042、调用 电话phone05[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"tel://8008808888"]];06iOS应用内拨打电话结束后返回应用07一般在应用中拨打电话的方式是:08[[UIApplication sharedApplicati
阅读全文
摘要:继承UIAlertView 然后改写layoutSubviews方法- (void)layoutSubviews{ CGRect rect = self.bounds; rect.size.height = 300; self.bounds = rect; [self setBackgroundColor:[UIColor greenColor]]; //重新设置确定,返回按钮的位置。 for(UIView *subview in [self subviews]) { if([subview isKindOfClass:[UIControl class]] ) { CGRect frame =
阅读全文
摘要:最近在忙着做一个文件传输的软件,刚开始也没去想项目实现的困难度,可不可行。怎么说呢,因为有类似的软件都已经上线了,别人都已经实现了,就算在可行性上面做再多的分析,也是多余的了。做这个项目也是我换工作后的第一个项目,以前做ios开发时间并不是很长,对ios开发的经验也是有限的。也没想过会遇到什么困难,...
阅读全文
摘要:一:确认网络环境3G/WIFI1. 添加源文件和framework开发Web等网络应用程序的时候,需要确认网络环境,连接情况等信息。如果没有处理它们,是不会通过Apple的审(我们的)查的。Apple 的 例程 Reachability 中介绍了取得/检测网络状态的方法。要在应用程序程序中使用Reachability,首先要完成如下两部:1.1. 添加源文件:在你的程序中使用 Reachability 只须将该例程中的 Reachability.h 和 Reachability.m 拷贝到你的工程中。如下图:1.2.添加framework:将SystemConfiguration.framew
阅读全文
摘要:ios delegate你必须知道的事情 转:http://popcornylu.blogspot.com/2011/07/delegate.html 当你开始写iOS程式不久,应该开始面对到很多的delegate, 不管是用别人的library或是自己写library,可能都逃不了delegate。 为了怕有些人不知道什么是delegate,在这边简单的介绍一下, delegate中文叫做委托,通常会用在class内部把一些事件处理"委托"给别人去完成。 举个例子,XML Parser可能他知道怎么parse xml,但是parse到的东西要怎么处理xml parser可
阅读全文
摘要:所谓"weak reference"的property,他的特色就是虽然会持有对方的reference,但是不会增加retain count。 这就有点像assgin的property一样了。"strong reference"只要对象的持有者存在(对象被强参照),那么就可以使用该对象对象失去了持有者后,即被破弃一般来说,复制一个对象包括创建一个新的实例,并以原始对象中的值初始化这个新的实例。复制非指针型实例变量的值很简单,比如布尔,整数和浮点数。复制指 针型实例变量有两种方法。一种方法称为浅拷贝,即将原始对象的指针值复制到副本中。因此,原始对象和副本共
阅读全文
摘要:-(BOOL)application:(UIApplication*)applicationdidFinishLaunchingWithOptions:(NSDictionary*)launchOptions{self.window=[[[UIWindowalloc]initWithFrame:[[UIScreenmainScreen]bounds]]autorelease];//开启网络状况的监听 [[NSNotificationCenterdefaultCenter]addObserver:selfselector:@selector(reachabilityChanged:)name:k
阅读全文
摘要:1.访问音乐库的两种方法,如下图(只能访问音频文件,如music,podcast,audiobook等)2.MPMusicPlayerController的使用有两种播放器可以选择,一种是application music player,另外一种是iPod music player。第一种播放器是一种内部播放器,当程序对出后停止播放;而第二种播放器则与iPod播放器内的信息相关,退出之后不会停止播放。获取方式如下:+applicationMusicPlayer+iPodMusicPlayer播放之前需要设置播放器的播放队列–setQueueWithQuery:–setQueueWithItem
阅读全文
摘要:-(BOOL)isExistenceNetwork{BOOL isExistenceNetwork;Reachability *r = [Reachability reachabilityWithHostName:@"http://www.baidu.com"];switch ([r currentReachabilityStatus]) {case NotReachable://没有网络。isExistenceNetwork=FALSE;break;case ReachableViaWWAN://没有3G信号。isExistenceNetwork=TRUE;break;c
阅读全文
摘要:assign: 简单赋值,不更改索引计数copy: 建立一个索引计数为1的对象,然后释放旧对象retain:释放旧的对象,将旧对象的值赋予输入对象,再提高输入对象的索引计数为1Copy其实是建立了一个相同的对象,而retain不是:比如一个NSString对象,地址为0×1111,内容为@”STR”Copy到另外一个NSString之 后,地址为0×2222,内容相同,新的对象retain为1, 旧有对象没有变化retain到另外一个NSString之 后,地址相同(建立一个指针,指针拷贝),内容当然相同,这个对象的retain值+1也就是说,retain是指针拷贝,cop
阅读全文
摘要:作为iOS平台的开发者,是否曾经为内存问题而苦恼过?内存莫名的持续增长,程序莫名的crash,难以发现的内存泄漏,这些都是iOS平台内存相关的常见问题;本文将会详细介绍iOS平台的内存管理机制,autorelease机制和内存的使用陷阱,这些将会解决iOS平台内存上的大部分问题,提高了程序的稳定性;1 iOS平台内存管理介绍iOS平台的内存管理采用引用计数的机制;当创建一个对象时使用alloc或者allWithZone方法时,引用计数就会+1;当释放对象使用release方法时,引用计数就是-1;这就意味着每一个对象都会跟踪有多少其他对象引用它,一旦引用计数为0,该对象的内存就会被释放掉;另.
阅读全文
摘要:#import <UIKit/UIKit.h>#import <AVFoundation/AVFoundation.h>@interface AudioPlayerViewController : UIViewController{AVAudioPlayer *audioPlayer;AVAudioRecorder *audioRecorder;int recordEncoding;enum{ ENC_AAC = 1, ENC_ALAC = 2, ENC_IMA4 = 3, ENC_ILBC = 4, ENC_ULAW = 5, ENC_PCM = 6,} ...
阅读全文
摘要:Push的原理:Push 的工作机制可以简单的概括为下图图中,Provider是指某个iPhone软件的Push服务器,这篇文章我将使用.net作为Provider。 APNS 是Apple Push Notification Service(Apple Push服务器)的缩写,是苹果的服务器。上图可以分为三个阶段。第一阶段:.net应用程序把要发送的消息、目的iPhone的标识打包,发给APNS。 第二阶段:APNS在自身的已注册Push服务的iPhone列表中,查找有相应标识的iPhone,并把消息发到iPhone。 第三阶段:iPhone把发来的消息传递给相应的应用程序, 并且按照设定弹
阅读全文
摘要:- (BOOL) isDeviceJailBroken{ BOOL jailbroken = NO; NSString *cydiaPath = @"/Applications/Cydia.app"; NSString *aptPath = @"/private/var/lib/apt/"; if ([[NSFileManager defaultManager] fileExistsAtPath:cydiaPath]) { jailbroken = YES; } if ([[NSFileManager defaultManager] fileExists
阅读全文
摘要:在使用本地化语言之前,来看看本地化语言文件内容的结构(这里我以Chinese为例):"Cancel"="取消";"OK"="确定";"Tip"="信息提示";"Login Faild"="登陆失败";.......其实就是简单的字符串替代而已,在程序中,如果有个UILable控件,需要赋值:lbLoginTip.text = NSLocalizedString(@"Login Faild", nil);最后在lbLo
阅读全文
摘要:今天在写代码中突然遇到一个问题,自以为在一个UIPickPhotoViewController切换到VideoPageViewController中,UIPickPhotoViewController和VideoPageViewController都是MainViewController pushViewController方法推出来的,因此在UIPickPhotoViewController中写的代码如下:VideoPageViewController *VideoController = [[VideoPageViewController alloc] init]; ...
阅读全文
摘要:directory。通常在home directory下有以下四个目录:Documents - 这个目录你可以用来存储各种文件application name- application bundle, 这里存放着app的nibs,resources,executable code等等Library - 这个目录下有一个Preference目录,你可以使用Preference API来读写文件从Preference目录tmp - 临时文件目录。
阅读全文
摘要:NSMutableArray *array = [NSMutableArray arrayWithCapacity:50]; [array addObject:@"a"]; [array addObject:@"b"]; [array addObject:@"c"]; [array addObject:@"d"]; NSLog(@"%@",array);//以大括号形式输出数组内容 //第一种迭代方法 for(int i=0;i<[array count];i++) ...
阅读全文
摘要:打开新的页面,起控制器为controller[self presentModalViewController:controller animated:YES];关闭通过presentModalViewController打开的页面[self dismissModalViewController:YES]
阅读全文