linyawen

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

随笔分类 -  IOS

ios iphone 开发
摘要:隔上一次写iPad app开发文章已经是10个月,那篇iPad app开发概述还不错,曾经成为了google关键字“iPad app 开发”搜索的第一位,可能是大牛们都太忙于赚app store的钱了,留下我这个小虾来写文章。这次的文章集中与iOS的多核编程和内存管理,为什么?因为iPad 2已经是双核CPU了!虽然iPad 1的应用已经不慢了,但大家完全可以使用苹果的多核编程框架来写出更加responsive的应用。多核运算在iOS中concurrency编程的框架就是GCD(Grand Central Dispatch), GCD的使用非常简单。它把任务分派到不同的queue队列来处理。开 阅读全文
posted @ 2012-07-04 14:56 linyawen 阅读(451) 评论(0) 推荐(0)

摘要:NSLog( @"main thread begin..." ); [self performSelectorInBackground: @selector(getImages) withObject: nil]; NSLog( @"main thread end..." ); - (void)getImages{ NSLog( @"one thread begin..." ); NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init]; NSString... 阅读全文
posted @ 2012-07-04 14:37 linyawen 阅读(1673) 评论(0) 推荐(0)

摘要:[selfperformSelectorOnMainThread:@selector(fetchedData:)withObject:datawaitUntilDone:YES];会创建一个新的线程实行fetchedData函数,并传入参数data,并且会等待函数退出后再继续执行。- (void)fetchedData:(NSData*)responseData {。。。}在多线程操作中,有一个著名的错误,叫做“Tried to obtain the web lock from a thread other than the main thread or the web thread. Thi 阅读全文
posted @ 2012-07-04 14:20 linyawen 阅读(624) 评论(0) 推荐(0)

摘要:举例说明怎么简单的创建一个子线程。用到的类是NSThread类,这里使用detachNewTheadSelector:toTagaet:withObject创建一个线程。函数setupThread:(NSArray*)userInfor。通过userInfor将需要的数据传到线程中。函数定义:-(void)setupThread:(NSArray*)userInfor{ [NSThreaddetachNewThreadSelector:@selector(threadFunc:) toTarget:self withObject:(id)userInfor]; //这个函数就和pthread_ 阅读全文
posted @ 2012-07-04 14:13 linyawen 阅读(296) 评论(0) 推荐(0)

摘要:摘要: Objective-C中调用函数的方法是消息传递,这个和普通的函数调用的区别是,你可以随时对一个对象传递任何消息,而不需要在编译的时候声明这些方法。所以Objective-C可以在runtime的时候传递人和消息。首先介绍两个方法。Objective-C中调用函数的方法是“消息传递”,这个和普通的函数调用的区别是,你可以随时对一个对象传递任何消息,而不需要在编译的时候声明这些方法。所以Objective-C可以在runtime的时候传递人和消息。首先介绍两个方法 SEL和@selector根据AppleObjective-C Runtime Reference官方文档这个传递消息的函数 阅读全文
posted @ 2012-07-04 14:02 linyawen 阅读(271) 评论(0) 推荐(0)

摘要:待学习 阅读全文
posted @ 2012-07-02 17:48 linyawen 阅读(188) 评论(0) 推荐(0)

摘要:曾经有人这么说过,在iphone里你看到的,摸到的,都是UIView,所以UIView在iphone开发里具有非常重要的作用。那么UIView我们到底知道多少呢。请看看下面的问题,如果这些你都知道,那么本文章的内容就请绕道,如果你还不太清楚,我想看了下面的内容,你就明白了。1。bounds和frame分别表示什么?2。ContentMode里UIViewContentModeScaleToFill代表什么?3。contentStretch 里的指定UIView里缩放区域是如何计算的?4。UIVIew里的哪些属性变化可以用动画来呈现?5。UIKit的坐标系和Core Graphics的坐标系的差 阅读全文
posted @ 2012-07-02 17:27 linyawen 阅读(226) 评论(0) 推荐(0)

摘要:bundle是一个目录,其中包含了程序会使用到的资源. 这些资源包含了如图像,声音,编译好的代码,nib文件(用户也会把bundle称为plug-in). 对应bundle,cocoa提供了类NSBundle.我们的程序是一个bundle. 在Finder中,一个应用程序看上去和其他文件没有什么区别. 但是实际上它是一个包含了nib文件,编译代码,以及其他资源的目录. 我们把这个目录叫做程序的main bundlebundle中的有些资源可以本地化.例如,对于foo.nib,我们可以有两个版本: 一个针对英语用户,一个针对法语用户. 在bundle中就会有两个子目录:English.lproj 阅读全文
posted @ 2012-07-02 00:55 linyawen 阅读(216) 评论(0) 推荐(0)

摘要:Blocks1,阻塞线程。2,语句块,类似C 语言的函数指针。(注意 !!)3, 内存循环引用: Blocks 对起语句块内的对象保留 一个 strong pointer 引用,如果 该对象同时也对 该 Block 保留一个 strong pointer 引用,则会出现循环应用,而使两个对象都不能从堆里释放。适用Blocks 的情况:1,Enumeration.枚举。2,View Animations .UIView 的动画。3,Sorting.排序。4,Notification. 事件。5,Error Handlers.6,Completion handlers.7(最重要),多核多线程下( 阅读全文
posted @ 2012-06-26 11:46 linyawen 阅读(223) 评论(0) 推荐(0)

摘要:转自http://www.cocoachina.com/bbs/read.php?tid=107251&fpage=2@synthesize 可以不用再写了如果在.h文件里有?1@propery NSObject * aProperty那么可以认为 编译器会类似在.m文件里生成?1@synthesize aProperty = _aProperty如果上面的都不认识 就可以认为 以下代码?123456789@interface Spouce:NSObject@property (strong) NSObject * child@end@implementSpouce@end和下面的代码 阅读全文
posted @ 2012-06-25 16:49 linyawen 阅读(1592) 评论(0) 推荐(0)

摘要:1、设置tableview返回时取消选中状态- (void)viewWillAppear:(BOOL)animated{ [superviewWillAppear:animated]; [self.tableviewdeselectRowAtIndexPath:self.tableview.indexPathForSelectedRowanimated:YES];}2、设置UIPickerView默认选中[pickerViewselectRow:5inComponent:0animated:NO];3、设置应用电池栏颜色[[UIApplication sharedApplication] .. 阅读全文
posted @ 2012-06-25 16:36 linyawen 阅读(3494) 评论(0) 推荐(0)

摘要:默认的UITabBarController的tabBar背景色是黑色的。有时我们的应用需要变更背景色,或用指定图片做为背景图。如下有两处实现方法, 这两种方法均需要先实例UITabBarController。如app的创建的是基于UITabBarController的应用,可将如下代码加入到AppDelegate 的委托方法didFinishLaunchingWithOptions: 中方法一:UITabBarController *tabBarController = [[UITabBarController alloc] init];CGRectframe =CGRectMake(0,0, 阅读全文
posted @ 2012-06-25 16:33 linyawen 阅读(4096) 评论(0) 推荐(0)

摘要:文一SQLite的FAQ里面已经专门说明,先贴出来。供以后像我目前的入门者学习。(7) 多个应用程序或者同一个应用程序的多个例程能同时存取同一个数据库文件吗?多进程可以同时打开同一个数据库,也可以同时 SELECT 。但只有一个进程可以立即改数据库。SQLite使用读/写锁定来控制数据库访问。(Win95/98/ME 操作系统缺乏读/写锁定支持,在低于 2.7.0 的版本中,这意味着在 windows 下在同一时间内只能有一个进程读数据库。在版本 2.7.0 中 这个问题通过在 windows 接口代码中执行一个用户间隔几率读写锁定策略解决了。) 但如果数据库文件在一个 NFS 文件系统中,控 阅读全文
posted @ 2012-06-25 16:27 linyawen 阅读(4713) 评论(0) 推荐(1)

摘要:scroll view 原理//作者:禚来强 iphone开发q*****:79190809 邮箱:zhuolaiqiang@gmail.com转帖请保留demo 可以到我的博客http://blog.csdn.net/diyagoanyhacker/article/list/10在滚动过程当中,其实是在修改原点坐标当手指触摸后, scroll view会暂时拦截触摸事件,使用一个计时器,假如在计时器到点后,没有发生手指移动事件,那么,scroll view发送tracking events到被点击的subview假如在计时器到点前,发生了移动事件,那么 scroll view 取消track 阅读全文
posted @ 2012-06-25 16:25 linyawen 阅读(192) 评论(0) 推荐(0)

摘要:(控制view 的逻辑切换流程简单了好多,兴奋哈哈)。Storyboard 有时也称为 Storyboarding,二者经常混用。 如果你的英文足够好,也许能体会到二者的细微差别。 在谈及Storyboard之前,我们先来了解下 Interface builder 的背景。 Interface Builder 简称 IB,是XCode开发环境自带的 用户图形界面设计工具, 通过它,你可以随心所欲地将 控件或对象(Object)拖拽到 视图中。 这些控件被存储在一个 XIB (发音为 zib)或NIB 文件中。XIB很容易理解, 说白了, XIB文件就是一个 XML 格式的文件, 你可以通过编辑 阅读全文
posted @ 2012-06-20 15:07 linyawen 阅读(771) 评论(0) 推荐(0)

摘要:@protocolMyProtocol-(void)doSomething;@end@interfaceMyClass:NSObject<MyProtocol>//直接符合协议的类{}@end@implementationMyClass-(void)doSomething{}@end@interfaceMyOtherClass:MyClass//继承了符合协议的类,即其父类符合协议。{}@end@implementationMyOtherClass-(void)doSomething{}@endintmain(intargc,constchar*argv[]){NSAutorele 阅读全文
posted @ 2012-06-19 15:26 linyawen 阅读(1908) 评论(0) 推荐(0)

摘要:( 提醒NSZombieEnabled只能在调试的时候使用,千万不要忘记在产品发布的时候去掉,因为NSZombieEnabled不会真正去释放dealloc对象的内存,一直开启后果可想而知,自重!)s我们做iOS程序开发时经常用遇到EXC_BAD_ACCESS错误导致Crash,出现这种错误时一般Xcode不会给我们太多的信息来定位错误来源,只是在应用Delegate上留下像Thread 1: Program received signal:"EXC_BAD_ACCESS",让问题无从找起。比如你对已释放的对象发送消息时就会出现,EXC_BAD_ACCESS,再如relea 阅读全文
posted @ 2012-06-19 15:24 linyawen 阅读(527) 评论(0) 推荐(0)

摘要:我一般情况下不会使用interface builder去画界面,而是用纯代码去创建界面,不是装B,而是刚从vi转到xcode不久,不太习惯interface builder而已。当然如果需要我也会使用它。一个东西的存在没有绝对的好与坏,只是存在时间与空间决定了它的价值。(忘了讲了,我的环境是xcode4.2)首先要弄懂几个基本的概念。一)三个结构体:CGPoint、CGSize、CGRect1.CGPoint/* Points. */struct CGPoint {CGFloat x;CGFloat y;};typedef struct CGPoint CGPoint;看到这个想必你已经懂了, 阅读全文
posted @ 2012-06-13 01:52 linyawen 阅读(267) 评论(0) 推荐(0)

摘要:转自http://blog.zhaojie.me/2010/12/iphone-composition-resistant-uitabbarcontroller.html最近在写一个iPhone应用程序,基于MonoTouch,所以在开发方面的问题,基本都是在界面元素的搭建上。这个程序界面相对比较复杂,于是我根据自己的想法来进行组合,结果发现UITabBarController不能放入其他的视图内,而只能直接放在Window上(或Window里的UINavigationController里),否则就会出现界面向下偏移的情况。现在虽然有workaround,但是对于UITabBarContro 阅读全文
posted @ 2012-06-12 17:35 linyawen 阅读(339) 评论(0) 推荐(0)

摘要:#import "SegmentedControlTestViewController.h" @implementation SegmentedControlTestViewController @synthesize segmentedControl; /**************************************** Tasks Initializing a Segmented Control – initWithItems: Managing Segment Content – s... 阅读全文
posted @ 2012-06-11 23:06 linyawen 阅读(336) 评论(0) 推荐(0)