自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

zhaojian3513的专栏

低调的进步

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

转载 iOS NSNotificationCenter 使用姿势详解

最近在做平板的过程中,发现了一些很不规范的代码。偶然修复支付bug的时候,看到其他项目代码,使用通知的地方没有移除,我以为我这个模块的支付闪退是因为他通知没有移除的缘故。而在debug和看了具体的代码的时候才发现和这里没有关系。在我印象中,曾经因为没有移除通知而遇到闪退的问题。所以让我很意外,于是写了个demo研究了下,同时来讲下NSNotificationCenter使用的正确姿势。NS

2015-05-31 15:24:02 366

转载 id ,NSObject, id<NSObject>区别

我们经常会混淆以下三种申明(我是没有留意过):    1. id foo1;    2. NSObject *foo2;    3. id foo3;    第一种是最常用的,它简单地申明了指向对象的指针,没有给编译器任何类型信息,因此,编译器不会做类型检查。但也因为是这样,你可以发送任何信息给id类型的对象。这就是为什么+alloc返回id类型,但调用[[Foo alloc]

2015-05-31 15:04:46 252

原创 Object-C中内存引用计数

在Objective-C的对象中存有引用计数这一整数值。在调用alloc或者retain方法后,引用计数值加1。调用release后,引用计数值减1。引用计数值为0时,调用dealloc方法废弃。在NSObject类的alloc类方法上设置断点,追踪程序的执行。以下列出了执行所调用的方法和函数。+alloc+allocWithZone:   class_createIn

2015-05-31 10:09:26 463

转载 你真的懂iOS的autorelease吗?

ARC 并不是舍弃了 @autoreleasepool,而是在编译阶段帮你插入必要的 retain/release/autorelease 的代码调用。所以,跟你想象的不一样,ARC 之下依然是延时释放的,依然是依赖于 NSAutoreleasePool,跟非 ARC 模式下手动调用那些函数本质上毫无差别,只是编译器来做会保证引用计数的正确性。本文主要探讨两个方面:(1)a

2015-05-30 17:14:54 283

转载 iOS项目中设置ARC 和 非ARC 以及autoRelease

targets->Build Phases->Compile Sourcesarc---非arc:将该文件的Compiler Flags编辑为:-fno-objc-arc非arc---arc:将给文件的Compiler Flags编辑为:-fobjc-arc如果你能够真正的理解autorelease,那么你才是理解了Objective c的内存管理。Autoreleas

2015-05-30 13:13:35 787

转载 ios开发之数据的持久化存储机制NSuserDefault、Plist、archiver、Sqlite、coreData

OS中数据的持久化保存这块内容,类似于Android中文件的几种常见的存储方式。对于数据的持久化存储,ios中一般提供了4种不同的机制。1.属性列表2.对象归档3.数据库存储(SQLite3)4.苹果公司提供的持久性工具Core Data。实储存的形式无非就这么几种,而我们还必须要关心的是,这些文件会被放置在那个文件下,然后如何读取。也就是说:IOS上数据存储,

2015-05-30 12:49:39 884

转载 iOS之推送通知-本地-服务器3.服务器端实现: 如果要编写内容提供者的推送服务程序,需要进行SSL认证编程,以及构建APNS数据包,数据包分为3个主要部分:Command(命令)、deviceTo

一 本地通知: 1.计划通知开始:- (IBAction)scheduleStart:(id)sender{UILocalNotification *localNotification = [[UILocalNotification alloc] init];//设置通知10秒后触发localNotification.fireDate = [[NSDate

2015-05-30 09:52:57 432

转载 iOS中nil/Nil/NULL的区别以及[NSNull null]

nil:指向oc中对象的空指针Nil:指向oc中类的空指针NSNull:在集合对象中,表示空值的对象若obj为nil:[obj message]将返回NO,而不是NSException若obj为NSNull:[obj message]将抛出异常NSExceptionnil和NULL从字面意思来理解比较简单,nil是一个对象,而NULL是一

2015-05-30 09:27:07 382

转载 retain/assign/strong/weak/copy/mutablecopy/autorelease区别

readwrite:是可读可写特性,需要生成getter和setter方法;readonly是之都特性,只会生成getter方法,不会生成setter方法,不希望属性在类外改变时候使用;alloc 对象分配后引用计数为1retain 对象的引用计数+1copy 一个对象变成新的对象(新内存地址) 引用计数为1 原来对象计数不变assign:是赋值特性,sette

2015-05-30 08:35:03 353

原创 iOS之默认搜索UISearchDisplayController

废话少说直接上代码:@interface JSLiveViewController ()UITableViewDelegate,UITableViewDataSource, UISearchBarDelegate,UISearchDisplayDelegate,JSProfessionScrollViewDelegate>/** *  搜索框 */

2015-05-29 14:30:01 449

转载 iOS应用程序生命周期(前后台切换,应用的各种状态)详解

iOS的应用程序的生命周期,还有程序是运行在前台还是后台,应用程序各个状态的变换,这些对于开发者来说都是很重要的。 iOS系统的资源是有限的,应用程序在前台和在后台的状态是不一样的。在后台时,程序会受到系统的很多限制,这样可以提高电池的使用和用户体验。//开发app,我们要遵循apple公司的一些指导原则,原则如下:1、应用程序的状态状态如下:Not running  未运行  程

2015-05-29 14:19:52 345

转载 iOS多线程编程之NSThread的使用

1、简介:1.1 iOS有三种多线程编程的技术,分别是:1.、NSThread 2、Cocoa NSOperation (iOS多线程编程之NSOperation和NSOperationQueue的使用)3、GCD  全称:Grand Central Dispatch( iOS多线程编程之Grand Central Dispatch(GCD)介绍和使用)这三种编程方式从上到

2015-05-29 14:04:55 264

转载 iOS多线程编程之NSOperation和NSOperationQueue的使用

使用 NSOperation的方式有两种,一种是用定义好的两个子类:NSInvocationOperation 和 NSBlockOperation。另一种是继承NSOperation如果你也熟悉Java,NSOperation就和java.lang.Runnable接口很相似。和Java的Runnable一样,NSOperation也是设计用来扩展的,只需继承重写NS

2015-05-29 13:38:36 272

转载 iOS多线程编程之Grand Central Dispatch(GCD)介绍和使用

介绍:Grand Central Dispatch 简称(GCD)是苹果公司开发的技术,以优化的应用程序支持多核心处理器和其他的对称多处理系统的系统。这建立在任务并行执行的线程池模式的基础上的。它首次发布在Mac OS X 10.6 ,iOS 4及以上也可用。设计:GCD的工作原理是:让程序平行排队的特定任务,根据可用的处理资源,安排他们在任何可用的处理器核心上执行任务。

2015-05-29 10:56:39 216

转载 1、UIGestureRecognizer介绍

1、UIGestureRecognizer介绍手势识别在iOS上非常重要,手势操作移动设备的重要特征,极大的增加了移动设备使用便捷性。iOS系统在3.2以后,为方便开发这使用一些常用的手势,提供了UIGestureRecognizer类。手势识别UIGestureRecognizer类是个抽象类,下面的子类是具体的手势,开发这可以直接使用这些手势识别。UITapGestureRec

2015-05-29 10:06:20 282

转载 2011斯坦福大学iOS应用开发教程学习笔记(第八课)viewController生命周期

第七课的主要内容:View Controller Lifecycle ImageView ScrollView WebView1、View Controller Lifecycle   creation 通过 一个segue或故事版的instantiateViewControllerWithIdentifer:实例化。一般情况不要自己定义UIViewController的初

2015-05-28 16:28:20 325

转载 2011斯坦福大学iOS应用开发教程学习笔记(第六课)故事版

第六课 主要内容:多个MVC的程序和故事版、UINavigationController、 Segues1、多个MVC前面的程序都是一个MVC,多个View时,怎么办,那就需要多个Controller。一个MVC只能控制一屏幕或更小的区域。那如何切换两个MVC呢,用控制器群里的控制器:UINavigationController。2、UINavigati

2015-05-28 16:27:16 389

转载 斯坦福大学公开课 第五课内容: 自动旋转、 Protocols、 手势识别、一个自定义UIView的Demo 1、自动旋转

1、自动旋转当设备旋转时,你的controller会做什么呢?你可以控制界面是否和设备一起一起旋转。[cpp] view plaincopy- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)orientation  {  return UIIn

2015-05-28 16:23:53 455

转载 斯坦福大学公开课第四课 Views 视图

课程开始老师怀念了一会老乔。接着介绍这次的课程分为两部分,一部分是Calculator的Demo,一部分是Views.课程开始到第四课,其实斯坦福的课程里是有作业的,人家已经做完了第一个作业了,就是完善计算器这个程序,完成一个比较复杂的计算器:计算器大概要完整这么多的功能,有兴趣的同学可以把这个作业的pdf下载下来自己完成。下载地址:作业1个人感觉这个计算器比较

2015-05-28 16:10:54 563

转载 2011斯坦福大学iOS应用开发教程学习笔记(第三课)Objective-C

第二课名称是:Objective-C 回顾上节课的内容:创建了单个MVC模式的项目显示项目的各个文件,显示或隐藏导航,Assistant Editor, Console, Object Library, Inspector等功能的使用在故事版上编辑视图,通过Ctrl+拖拽把view连接到Controller的outlet。创建新的类,比如 CalculatorB

2015-05-28 16:02:39 450

转载 2011斯坦福大学iOS应用开发教程学习笔记(第一课)MVC.and.Introduction.to.Objective-C

2011年冬季斯坦福大学公开课 iOS应用开发教程是个很经典的教程,这个老头讲的很给力。做笔记总结。第一课名称: MVC and Introduction to Objective-C这课的主要内容有:iOS的概述  -什么是iOSMVC - 面向对象的概念Objective-C-介绍下语言的概念iOS包括四层内核内核是mach 4.x BSD

2015-05-28 15:58:47 712

翻译 iOS 中KVC、KVO、NSNotification、delegate 总结及区别

1、KVC,即是指 NSKeyValueCoding,一个非正式的Protocol,提供一种机制来间接访问对象的属性。而不是通过调用Setter、Getter方法访问。KVO 就是基于 KVC 实现的关键技术之一。Demo:@interface myPerson : NSObject{            NSString*_name;        

2015-05-28 15:23:56 400

原创 iOS之 KVO实例代码应用

////  JSTabBarButton.m//  JSmaster////  Created by jyd on 14/12/25.#import "JSTabBarButton.h"#import "JSBadgeButton.h"#define JSImageRatio 0.6@interface JSTabBarButton()

2015-05-28 15:07:50 407

原创 iOS 之UICollectionView 使用

同样需要一个重用的ID:NSString *const JSPlaybackCellID =@"JSPlaybackCellID";/** *  设置老师CollectionView */-(void)setupCollectionView{   //1.设置布局   UICollectionViewFlowLayout *layout = [[

2015-05-28 14:32:51 385

原创 iOS之UITableView Cell重用机制

/** *  设置TableViewCell每一行数据 */-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{        WActiveCellVo *activeVo =self.activeCellVoMu

2015-05-28 14:05:45 413

转载 IOS CoreData基础

简介  Core Data是iOS5之后才出现的一个框架,它提供了对象-关系映射(ORM)的功能,即能够将OC对象转化成数据,保存在SQLite数据库文件中,也能够将保存在数据库中的数据还原成OC对象。在此数据操作期间,我们不需要编写任何SQL语句,这个有点类似于著名的Hibernate持久化框架,不过功能肯定是没有Hibernate强大的。简单地用下图描述下它的作用:

2015-05-06 21:25:58 320

空空如也

空空如也

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

TA关注的人

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