摘要:
GCD(Grand Central Dispatch)是一个大的主题。它可以提高代码的执行效率与多核的利用率。是苹果的开源项目,如果你是一个追求软件效率的开发人员,这门技术你一定要有所研究。 今天要介绍的是如何从网上下载大量的文件, 方法有许多,传通的就是用多线程,面iOS中有很好用的Operator Queeu, 或者用传通的NStrhead, pthread. 今天我不介绍这些方法,而是得用GCD来完成这个下载任务。 今天这个demo, 展示面几个功能: 1. 预定义了大量的要下载的图片URL2. 创建一个GCD queue并开始下载图片3. 在动画出现消失的时候,同时显示图片 主要代码. 阅读全文
摘要:
1。GCD之dispatch queuehttp://www.cnblogs.com/scorpiozj/archive/2011/07/25/2116459.html2。iOS中GCD的魔力http://blog.csdn.net/favormm/article/details/64532603。官方 ,内容真的很多http://developer.apple.com/library/ios/#documentation/Performance/Reference/GCD_libdispatch_Ref/Reference/reference.htmlhttp://developer.app 阅读全文
摘要:
IOS中,如果要在主线程中启动一个子线程,可以又两种方法:[cpp][NSThread detachNewThreadSelector:@selector(myThreadMainMethod:) toTarget:self withObject:nil];这是在cocoa早期提供的方法,因此你可以在任何版本的ios和mac上调用此方法。在 OS X v10.5(or later)和IOS中,苹果又提供了一种方法,可以允许你获得你的thread句柄,并且更方便的让主线程控制子线程。[cpp]NSThread* myThread = [[NSThread alloc] initWithTarge 阅读全文
摘要:
NSLog(@"main thread:%@",[NSThread currentThread]); 阅读全文
摘要:
[cpp]view plaincopy-(IBAction)startThreadButtonPressed:(UIButton*)sender{threadStartButton.hidden=YES;threadValueLabel.text=@"0";threadProgressView.progress=0.0;//新的线程[NSThreaddetachNewThreadSelector:@selector(startTheBackgroundJob)toTarget:selfwithObject:nil];}创建新的线程,线程的函数为 startTheBackgr 阅读全文
摘要:
在使用多线程时,要注意:有些view使用子线程获得数据,但是view上的按钮却在主线程上。所以,当使用子线程时,要适当控制view上按钮的可用性。否则会出现页面错版。 阅读全文
摘要:
1、再每个viewDidLoad 方法中都尽量不要写业务逻辑相关的代码。viewDidLoad方法最好只用于展示view。 业务逻辑可以再另外的线程中进行处理,这样用户的操作感觉会相对流畅。2、再使用 UITableView 时,不要在-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath 方法中写绘制画面的代码。建议在另外的方法中为每个cellview 绘制一个view ,然后将这些view 存储在 NSMutableArray 中。cellFo 阅读全文
摘要:
NSInteger pageNumber; 和 NSInteger *pageNumber; xcode 都能识别,但是二者有什么区别? 阅读全文
摘要:
静听夜雨 阅读全文
摘要:
为了让用户能有良好的操作体验,一般地建议按如下方式设计人机交互操作。第一步:绘制基本界面第二步:向后台请求数据第三步:将数据加载到界面上 阅读全文
摘要:
如下,当偏移量达到50%时,就翻页page = floor((scrollView0.contentOffset.x - pageWidth / 2) / pageWidth) + 1; 阅读全文
摘要:
方法: 再百度地图的委托方法 - (void)mapView:(BMKMapView *)mapView didUpdateUserLocation:(BMKUserLocation *)userLocation 中设置:[mapView setShowsUserLocation:NO];例子代码:- (void)viewDidLoad{ [super viewDidLoad]; configData = [NSUserDefaults standardUserDefaults]; //初始化对象 //启动BMKMapManager (加载百度地图前,必须... 阅读全文
摘要:
在开发过程中,数据的输入和输出全部用string类型进行交互,是否会更好一些?只有在使用数据的时候根据需要对数据进行转型。这样是否可以屏蔽多种数据类型的繁杂。 阅读全文
摘要:
pageControl0.currentPage = page;当scrollview load 某个page 时,就会将这个page传递给pagecontrol,让其作出相应的反应。 阅读全文
摘要:
将一个view 的背景设为透明 但view上的图标 不透明 代码:[view setBackgroundColor:[UIColorcolorWithWhite:0alpha:0]];实现类似iphone ipad 主页的滑动效果,思路:1、只要将scrollview 设置为上述的透明,然后将scrollview 添加为一个view的子页面,而这个view 有背景图片就可以了。这样,就实现了图标滑动而背景不会滑动的效果。即,不要为scrollview 设置背景图片就好了。 阅读全文
摘要:
这是因为ios6中的xib有AutoLayout这个属性,默认为选中,然后运行在低于ios6.0的机器中,会崩溃,报*** Terminating app due to uncaught exception 'NSInvalidUnarchiveOperationException', reason: 'Could not instantiate class named NSLayoutConstraint'*** First throw call stack:这个异常。只需将AutoLayout设为不选中即可参考:http://blog.sina.com.cn 阅读全文
摘要:
如下: if (nil == view.superview) { //判断一个view 是否被加载过 如果被加载过,它的superview就不会是nil CGRect frame = scrollView0.frame; frame.origin.x = frame.size.width * page; frame.origin.y = 0; view.frame = frame; [scrollView0 addSubview:view]; ... 阅读全文
摘要:
在XCODE中无法使用TAB键对多行代码进行缩进。想多行缩进,选中需要缩进的代码使用快捷键command(花键)+] 即可右缩进,同理,左缩进只需要command(花键)+[ 即可,也可以通过editor->structure下的 Shift Right 和 Shift Lift 命令(4.3.2版本)来进行缩进。 阅读全文