linyawen

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

随笔分类 -  IOS

ios iphone 开发
摘要:转自http://blog.csdn.net/sjzsp/article/details/6947587#comments在iOS应用中,UITableView应该是使用率最高的视图之一了。iPod、时钟、日历、备忘录、Mail、天气、照片、电话、短信、Safari、App Store、iTunes、Game Center⋯几乎所有自带的应用中都能看到它的身影,可见它的重要性。然而在使用第三方应用时,却经常遇到性能上的问题,普遍表现在滚动时比较卡,特别是table cell中包含图片的情况时。实际上只要针对性地优化一下,这种问题就不会有了。有兴趣的可以看看LazyTableImages这个官方 阅读全文
posted @ 2012-08-24 15:50 linyawen 阅读(416) 评论(0) 推荐(0)

摘要:转自http://www.cnblogs.com/zhuweisky/archive/2010/09/16/1827896.html在.NET中使用Speex -- 音频数据编解码 Speex是一套开源的音频编解码库,最新版本还包含了回音消除和防抖动等功能,如果我们想开发语音聊天或视频会议这样的系统,Speex将是一个不错的选择。到http://www.speex.org可以下载Speex的源码(编译后的dll为libspeex.dll),最新版本为1.2。不过源码是用C++开发的,直接在.NET中使用会有诸多不便,为此,我用C#将其封装,使得编解码的调用相当简单。 由于Speex原始导出.. 阅读全文
posted @ 2012-08-21 17:57 linyawen 阅读(1108) 评论(0) 推荐(0)

摘要:转自 http://blog.csdn.net/txinfo/article/details/7347515要做一个本地文件管理的小功能,获取应用沙盒目录及文件列表的方法都比较常见,但是想获取指定文件大小时,网上却很少提及,看了半天源码,才找到地方,在这里share一下:NSFileManager*fm= [NSFileManagerdefaultManager];//取文件大小NSError*error =nil;NSDictionary* dictFile = [[fmattributesOfItemAtPath:fullFileerror:&error]retain];if(er 阅读全文
posted @ 2012-08-19 15:03 linyawen 阅读(4437) 评论(0) 推荐(0)

摘要:1,音频格式相关:http://www.raywenderlich.com/204/audio-101-for-iphone-developers-file-and-data-formats。2,音频录制,播放相关:http://www.raywenderlich.com/259/audio-101-for-iphone-developers-playing-audio-programmatically 阅读全文
posted @ 2012-08-17 11:13 linyawen 阅读(314) 评论(0) 推荐(0)

摘要:大家好,我想用AVAudioRecorder实现录音回放功能,其中 NSMutableDictionary* recordSetting = [[NSMutableDictionary alloc] init]; [recordSetting setValue :[NSNumber numberWithInt:kAudioFormatAMR] forKey:AVFormatIDKey]; [recordSetting setValue:[NSNumber numberWithFloat:44100.0] forKey:AVSampleRateKey]; [recordSetting s... 阅读全文
posted @ 2012-08-17 09:17 linyawen 阅读(5630) 评论(0) 推荐(0)

摘要:转自http://www.cnblogs.com/lovecode/articles/2269572.html一、确认网络环境3G/WiFi1). 要在应用程序中使用Reachability,首先要完成以下两步骤:1.1 添加源文件:将Reachability.h和Reachability.m拷贝到你工程中。1.2 添加必要框架:将SystemConfiguration.framework添加到工程项目中。2). 检查网络状态Reachability *r = [Reachability reachabilityWithHostName:@"www.apple.com"]; 阅读全文
posted @ 2012-08-14 17:19 linyawen 阅读(398) 评论(0) 推荐(0)

摘要:转自http://www.open-open.com/lib/view/open1338595161095.htmliphone的CFNetwork编程比较艰深。使用AsyncSocket开源库来开发相对较简单,下面介绍一些简单的使用,并给出一个简单的实现模板,只要添加自己的处理代码就可以使用了。官方网站:http://code.google.com/p/cocoaasyncsocket/一.项目添加ASyncSocket 1.下载ASyncSocket库源码 2.把ASyncSocket库源码加入项目 3.在项目增加CFNetwork框架二.功能介绍1.在需要联接地方使用connectToH 阅读全文
posted @ 2012-08-14 17:18 linyawen 阅读(739) 评论(0) 推荐(0)

摘要:转自http://tech.it168.com/a2009/1229/830/000000830741.shtml【IT168技术】在这篇文章中,我将介绍如何使用TCP/IP协议让iPhone与服务器实现通信,同时以一个简单的聊天程序作为例子进行说明。 首先使用Xcode常见一个基于视图(View)的应用程序项目,取名Network。 使用网络通信流 使用套接字在网络上通信最简单的方法是使用NSStream类,NSStream类是一个表示流的抽象类,你可以使用它读写数据,它可以用在内存、文件或网络上。使用NSStream类,你可以向服务器写数据,也可以从服务器读取数据。 在Mac OS... 阅读全文
posted @ 2012-08-14 16:27 linyawen 阅读(485) 评论(0) 推荐(0)

摘要:转自: http://bbs.et8.net/bbs/showthread.php?t=1019931本文用示例来说明一下iOS下用block+GCD来在程序中实现非阻塞式执行耗时任务。先说明一下,严格说来“异步”、“后台线程”、“非阻塞”这些概念是有一些小区别的。有些系统API特别是网络和文件I/O是通过系统底层中断来实现”非阻塞”,而一般用户任务比如耗时计算是通过后台线程完成的。但具体到app这一层,开发人员并不关心具体的实现是用了硬件中断还是一个线程,所以在本文的上下文中,没有特意区分这几个概念点,甚至有些混用。本文中的“非阻塞”可以简章理解为,开发人员只需要知道“我的程序执行耗时任务. 阅读全文
posted @ 2012-07-24 16:21 linyawen 阅读(5856) 评论(0) 推荐(0)

摘要:iPhoneApp获取文件教程是本文要介绍的内容,对于一个运行在iPhone得app,它只能访问自己根目录下得一些文件(所谓sandbox).一个app发布到iPhone上后,它得目录结构如下: 1、其中得 approot可以用 NSHomeDirectory() 访问到; 2、Documents 目录就是我们可以用来写入并保存文件得地方,一般可通过:NSArray*paths=NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask,YES); NSString*documentsDirector... 阅读全文
posted @ 2012-07-24 10:56 linyawen 阅读(1202) 评论(0) 推荐(0)

摘要:转自 http://www.cnblogs.com/vinceoniphone/archive/2011/04/08/2009297.htmlGCD 概述1. GCD 包含于 libSystem.dylib2. 可供所有程序使用.- #include <dispatch/dispatch.h>3. GCD API 提供 block-based and function-based variants- 目前仅提供 block-based APIGCD总结1. Blocks- dispatch_async()2. Queues- Lightweight list of blocks- 阅读全文
posted @ 2012-07-22 23:41 linyawen 阅读(1109) 评论(0) 推荐(0)

摘要:Ios4已经直接支持blocks,很有必要学习一下。在ios,blocks是对象,它封装了一段代码,这段代码可以在任何时候执行。Blocks可以作为函数参数或者函数的返回值,而其本身又可以带输入参数或返回值。它和传统的函数指针很类似,但是有区别:blocks是inline的,并且它对局部变量是只读的。Blocks的定义:int(^Multiply)(int,int) = ^(intnum1,intnum2) {returnnum1 * num2;};定义了一个Multiply的blocks对象,它带有两个int参数,返回int。等式右边就是blocks的具体实现,注意{}blocks体里的;。 阅读全文
posted @ 2012-07-22 22:43 linyawen 阅读(320) 评论(0) 推荐(0)

摘要:IOS 多线程 有三种主要方法(1)NSThread(2)NSOperation(3)**下面简单介绍这三个方法1.NSThread 调用方法如下: 如函数需要输入参数,可从object传进去。 (1) [NSThread detachNewThreadSelector:@selector(threadInMainMethod:) toTarget:self withObject:nil]; (2) NSThread* myThread = [[NSThread alloc] initWithTarget:self selector:@selector(threadInMainMe... 阅读全文
posted @ 2012-07-22 21:30 linyawen 阅读(274) 评论(0) 推荐(0)

摘要:深入浅出 iOS 之多线程 NSThread罗朝辉(http://blog.csdn.net/kesalinCC 许可iOS 支持多个层次的多线程编程,层次越高的抽象程度越高,使用起来也越方便,也是苹果最推荐使用的方法。下面根据抽象层次从低到高依次列出iOS所支持的多线程编程范式:1, Thread;2, Cocoa operations;3, Grand Central Dispatch (GCD) (iOS4 才开始支持)下面简要说明这三种不同范式:Thread 是这三种范式里面相对轻量级的,但也是使用起来最负责的,你需要自己管理thread的生命周期,线程之间的同步。线程共享同一应用程序 阅读全文
posted @ 2012-07-22 20:25 linyawen 阅读(308) 评论(0) 推荐(0)

摘要:Iphone开发-NSRunLoop概述和原理1.什么是NSRunLoop?我们会经常看到这样的代码:-(IBAction)start:(id)sender{pageStillLoading=YES;[NSThreaddetachNewThreadSelector:@selector(loadPageInBackground:)toTarget:self withObject:nil];[progress setHidden:NO];while(pageStillLoading){[NSRunLoopcurrentRunLoop]runMode:NSDefaultRunLoopMode bef 阅读全文
posted @ 2012-07-17 11:39 linyawen 阅读(1752) 评论(1) 推荐(0)

摘要:转自 --http://marshal.easymorse.com/archives/4519多线程开发是一件需要特别精心的事情,即使是对有多年开发经验的工程师来说。为了能让初级开发工程师也能使用多线程,同时还要简化复杂性。各种编程工具提供了各自的办法。对于iOS来说,建议在尽可能的情况下避免直接操作线程,使用比如NSOperationQueue这样的机制。可以把NSOperationQueue看作一个线程池,可往线程池中添加操作(NSOperation)到队列中。线程池中的线程可看作消费者,从队列中取走操作,并执行它。你可以设置线程池中只有一个线程,这样,各个操作就可以认为是近似的顺序执行了 阅读全文
posted @ 2012-07-17 09:56 linyawen 阅读(267) 评论(0) 推荐(0)

摘要:Cocoa Touch提供用于通知用户等待进程完成的类:1、UIActivityIndicatorView:提供一个旋转的圆,通知用户等待,不提供具体信息2、UIProgressView:显示进度条,量化工作量(时间)3、UIProgressHUD:不量化工作,但显示工作状态或描绘进度。注意此类不在标准的SDK中针对以上三类,分别用代码来演示应用1\#define INDICATOR_VIEW 999@interface HelloController : UIViewController{ BOOL progressShowing;}@end@implementation Hel... 阅读全文
posted @ 2012-07-16 23:21 linyawen 阅读(343) 评论(0) 推荐(0)

摘要:最近我突然发现UINavigationbar背景修改的方法不起作用了,代码如下:123456789@implementationUINavigationBar(CustomImage)-(void)drawRect:(CGRect)rect{UIImage*image=[UIImage imageNamed:@"navigationbar.png"];[image drawInRect:CGRectMake(0,0,self.frame.size.width,self.frame.size.height)];}@end发现原来是iOS 5的原因,如果运行在iOS 5以下的版 阅读全文
posted @ 2012-07-16 20:23 linyawen 阅读(2277) 评论(0) 推荐(0)

摘要:UINavigationBar自定义导航栏背景和按钮,完美支持横屏竖屏旋转,视图控制器可以分别使用自己的导航栏此方法可以通过Apple审核,导航上的按钮背景需要做,否则看起来不那么和之又谐 . 此方法使用于ios5。0以下//CustomNavigationBar.h @interfaceUINavigationBar(UINavigationBarCategory) UIImageView*backgroundView; -(void)setBackgroundImage:(UIImage*)image; -(void)insertSubview:(UIView*)viewatIndex:( 阅读全文
posted @ 2012-07-16 20:17 linyawen 阅读(822) 评论(0) 推荐(0)

摘要:在storyboard中,segue有几种不同的类型,在iphone和ipad的开发中,segue的类型是不同的。在iphone中,segue有:push,modal,和custom三种不同的类型,这些类型的区别在与新页面出现的方式。而在ipad中,有push,modal,popover,replace和custom五种不同的类型。modal模态转换最常用的场景,新的场景完全盖住了旧的那个。用户无法再与上一个场景交互,除非他们先关闭这个场景。是在viewController中的标准切换的方式,包括淡出什么的,可以选切换动画。Modalview:就是会弹出一个view,你只能在该view上操作, 阅读全文
posted @ 2012-07-12 09:05 linyawen 阅读(2805) 评论(0) 推荐(0)