自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

转载 iOS应用崩溃日志揭秘2

为确保你的应用正确无误,在将其提交到应用商店之前,你必定进行了大量的测试工作。它在你的设备上也运行得很好,但是,上了应用商店后,还是有用户抱怨会闪退 !如果你跟我一样是个完美主义者,你肯定想将应用做到尽善尽美。于是你打开代码准备修复闪退的问题……但是,从何处着手呢?这时iOS崩溃日志派上用场了。在大多数情况下,你能从中了解到关于闪退的详尽、有用的信息。通过本教程,你将学习到一些常见的崩

2014-01-17 22:41:55 1035

转载 Demystifying iOS Application Crash Logs

This post is also available in: Chinese (Simplified)Learn how to make sense of crash logs!This is a blog post by Soheil Moayedi Azarpour, an independent iOS developer. You can also find

2014-01-17 22:23:59 1842

转载 My App Crashed, Now What? – Part 2

This post is also available in: Japanese, SpanishThis is a post by iOS Tutorial Team member Matthijs Hollemans, an experienced iOS developer and designer. You can find him on Google+ and Twitter.

2014-01-17 22:14:50 1008

转载 My App Crashed, Now What? – Part 1

This post is also available in: French, Japanese, SpanishThis is a post by iOS Tutorial Team member Matthijs Hollemans, an experienced iOS developer and designer. You can find him on Google+ and T

2014-01-17 21:53:38 1258

转载 Objective-C 单例模式写法以及单例模式模板宏

Objective-C Singleton 单例模式解析,单例模式就是只有一个实例,确保某一个类只有一个实例,而且自行实例化并向整个系统提供这个实例,这个类称为单例类。  objective c 单例模式,objective c 设计模式,objective c singleton 。    单例指一个唯一的,由全局共享的对象,单例模式确保某一个类只有一个实例,而且自行实例化并向整个系

2014-01-14 23:19:51 1224

原创 Core Data Validation Errors

2014-01-13 19:54:44 791

原创 Core data 数据分开存储 并简单加密

- (NSPersistentStoreCoordinator *)persistentStoreCoordinator {if (persistentStoreCoordinator_ != nil) {return persistentStoreCoordinator_;}persistentStoreCoordinator_ = [[NSPersistentStoreCoor

2014-01-12 23:50:47 2085

原创 Comparison Predicates

例子:NSManagedObjectContext *context = [self managedObjectContext];NSEntityDescription *entity = [NSEntityDescription entityForName:@"Person"➥inManagedObjectContext:context];NSFetchRequest *fetc

2014-01-12 16:07:25 672

原创 NSString和NSDate互转需要用到NSDateFormatter

NSDateFormatter *formatter = [[NSDateFormatter alloc] init];  NSTimeZone *timeZone = [NSTimeZone localTimeZone];    [formatter setTimeZone:timeZone];  [formatter setDateFormat : @"M/d/yyyy h:m a"];   

2014-01-12 14:22:44 613

转载 CALayer的一些重要属性

CALayer 的一些重要属性:1. shadowPath : 设置 CALayer 背景(shodow)的位置2. shadowOffset : shadow 在 X 和 Y 轴 上延伸的方向,即 shadow 的大小3. shadowOpacity : shadow 的透明效果4. shadowRadius : shadow 的渐

2014-01-12 14:18:55 624

原创 core data support undo manager

- (NSManagedObjectContext *)managedObjectContext {if (managedObjectContext_ != nil) {return managedObjectContext_;}NSPersistentStoreCoordinator *coordinator = [self persistentStoreCoordinator]

2014-01-12 13:11:06 1015

原创 用代码给 core data property 设置默认值

overrides NSManagedObject’s awakeFromInsert: method.- (void)awakeFromInsert {[super awakeFromInsert];[self setValue:[NSDate date] forKey:@"myDate"];}

2014-01-12 13:05:59 1624

原创 自己写 NSManagedObjectModel NSPersistentStoreCoordinator NSManagedObjectContext

#pragma mark -#pragma mark Core Data stack- (NSManagedObjectModel *)managedObjectModel {if (managedObjectModel_ != nil) {return managedObjectModel_;}managedObjectModel_ = [[NSManagedObject

2014-01-12 11:19:57 1765

原创 RelationsShip Delete Rule

2014-01-12 11:12:53 586

原创 Core Data Relationship Delete Rule

2014-01-12 11:11:53 781

原创 core data interacts chiefly with four classes

2014-01-11 22:13:39 525

原创 NSEntityDescription 创建 NSEntityDescription 对象和NSManagedObject 对象

NSEntityDescription *entity = [NSEntityDescription entityForName:@"Organization"➥inManagedObjectContext:managedObjectContext];NSManagedObject *org = [NSEntityDescription insertNewObjectForEntityFo

2014-01-11 21:54:36 978

转载 CoreData分页查询

NSFetchRequest *request = [[NSFetchRequest alloc] init];NSEntityDescription *entity = [NSEntityDescription entityForName:@"RSSEntryModel" inManagedObjectContext:_managedObjectContext];[request setEn

2014-01-11 15:11:11 3169

转载 CoreData增删查改

1. 插入AppDelegate *app = [[UIApplication sharedApplication] delegate];NSManagedObjectContext *context = [app managedObjectContext];NSManagedObject *newManagedObject = [NSEntityDescription i

2014-01-11 14:36:55 1029

转载 NSFetchedResultsSectionInfo Protocol

OverviewThis protocol defines the interface for section objects vended by an instance of NSFetchedResultsController.TasksAccessing Objects   numberOfObjects  required property 

2014-01-11 14:29:28 961

转载 NSFetchedResultController

OverviewYou use a fetched results controller to efficiently manage the results returned from a Core Data fetch request to provide data for a UITableViewobject.While table views can be used in

2014-01-11 14:23:55 2034

转载 iOS 3D UI---CALayer的transform扩展

iOS的UI是基于UIView类的,我们能看到的每个UI元素都是UIView或者UIView的子类。View按树形结构组织起来,树根是UIWindow。View负责界面的交互和显示,其中显示部分由CALayer来完成。每个UIView包含一个CALayer实例。可以这么认为,UIView本身是不可见的,我们能看到的都是CALayer,UIView只是负责对CALayer进行管理。U

2014-01-08 23:27:59 517

转载 CATransform3DMakeRotation 旋转,翻转

CATransform3D myTransform;myTransform = CATransform3DMakeRotation(angle, x, y, z);该CATransform3DMakeRotation函数创建了一个转变,将在三维轴坐标系以任意弧度旋转层。x-y-z轴的有个确定的范围(介于-1 和+1之间) 。相应的坐标轴指定的值告诉系统在该轴上旋转。例如,如果X轴是设置

2014-01-08 23:24:06 544

转载 NSSet sort

//NSSet *mySet;//NSData *someData = [NSData dataWithContentsOfFile:aPath];//NSValue *aValue = [NSNumber numberWithInteger:5];//NSString *aString = @"a string"; //mySet = [NSSet setWithObjects:someData

2014-01-08 22:23:52 830

原创 ios draw arc

//draw background circle    UIBezierPath *backCircle = [UIBezierPath bezierPathWithArcCenter:CGPointMake(CGRectGetWidth(self.bounds) / 2, CGRectGetHeight(self.bounds) / 2)

2014-01-08 00:47:23 2119

转载 UIBezierPath

使用UIBezierPath类可以创建基于矢量的路径,这个类在UIKit中。此类是Core Graphics框架关于path的一个封装。使用此类可以定义简单的形状,如椭圆或者矩形,或者有多个直线和曲线段组成的形状。    1.Bezier Path 基础   UIBezierPath对象是CGPathRef数据类型的封装。path如果是基于矢量形状的,都用直线和曲线段去创建。我们使用直

2014-01-08 00:25:54 11900 1

转载 Core Data浅谈系列之八 : 关于并发

有时候,我们需要有个worker thread来做一些密集型或者长耗时的任务,以避免阻塞住UI,给用户不好的体验。比如从网络上获取一批数据,然后解析它们,并将其输出到存储文件中。这时候,由于数据层发生了变动,我们希望通知到主线程更新UI —— 这就涉及到Core Data的多线程特性。比如我们一直以来使用的Demo中,添加球员信息的AddPlayerViewController

2014-01-06 22:18:48 654

转载 Core Data浅谈系列之七 : 使用NSFetchedResultsController

上一篇讨论到添加球员信息后,球员列表没有及时得到修改。这是由于之前我们简单地使用了一个NSMutableArray来管理球员列表,需要我们额外做一些变更通知。而在Core Data和UITableView之间,存在这一个名为NSFetchedResultsController的类为我们提供更多方便。从很大程度上来看,NSFetchedResultsController是为了响应

2014-01-06 22:15:51 586

转载 Core Data浅谈系列之六 : 验证用户输入

在做Web开发时,需要谨记的一条原则是“绝不要相信用户的任何输入”(参见《Essential PHP Security》)。与网页上的表单提交类似,做客户端开发时也应该考虑用户输入,比如可以为UITextField设置代理处理用户实时输入的内容,也可以读取完用户输入再做检查,或者是NSManagedObject的验证功能。比如,我们可以在Player的实现里提供验证

2014-01-06 22:05:24 465

转载 Core Data浅谈系列之五 : 在UITableView中展示

在逻辑上(表关系)将Team和Player关联起来后,我们将其展现到UI视图上。首先,为App添加导航栏:[cpp] view plaincopy@interface AppDelegate : UIResponder     @property (strong, nonatomic) UIWindow *window; 

2014-01-06 21:58:14 552

转载 Core Data浅谈系列之四 : 数据模型的版本变迁

继上一篇文章末尾提到的,一支队伍可以添加多名球员,不过一名球员只能属于一支队伍中,这分别对应着Core Data中一对多和一对一的属性关系:如上两图,是在Team实体里面添加了一个players关系,指向Player实体,可以一支球队关联多名球员,并且最多只允许关联15名球员。同样地,也为Player实体添加tea

2014-01-06 21:52:00 570

转载 Core Data浅谈系列之三 : 了解NSManagedObject和NSPredicate

上一篇文章用实际代码演示了Core Data应用中基本的增删改查操作,使用的是NSManagedObject对象,利用KVC来修改、获取对象的属性值。除此之外,我们还可以创建与Player、Team相对应的具体的NSManagedObject子类,如下图:Xcode会为我们生成子类的代码,如Player的接口声明和实现(汗,从Xcode复制代码到

2014-01-06 21:48:07 550

转载 Core Data浅谈系列之二 : 简单的CURD

在上一篇中简单介绍了Core Data Stack,自上而下地对Core Data应用结构有个基本的认识,不过都是理论上的。这里就以上一篇的理论构建起一个可运行的Demo,执行一些简单的增删改查操作。(图片来自Apple)首先,我们需要建立如上图的栈结构。因此,在ViewController里添加3个属性:[cpp] 

2014-01-06 21:41:42 554

转载 Core Data浅谈系列之一 : 基础结构

Core Data是苹果官方提供的一套框架,用来解决与对象生命周期管理、对象关系图管理和持久化等方面相关的问题。大多数情况下,我们引入Core Data作为持久化数据的解决方案,并利用它将持久化数据映射为内存对象。为什么要使用Core Data呢?以下几点可供参考:有丰富且良好的文档,方便新手入门、老手埋坑。这些文档多半来源于Apple官方,以及Stackoverf

2014-01-06 21:40:18 592

转载 CoreData

Core data 是 Cocoa 中处理数据,绑定数据的关键特性,其重要性不言而喻,但也比较复杂。Core Data 相关的类比较多,初学者往往不太容易弄懂。计划用三个教程来讲解这一部分:框架详解:讲解  Core data 框架,运作过程,设计的类;Core data应用程序示例:通过生成一个使用 Core data 的应用程序来讲解如何 在  XCode 4 中使用 Core

2014-01-05 15:04:10 538

转载 IOS 绘制背景色渐变的矩形

两段代码,首先是使用方法01CGContextRef context = UIGraphicsGetCurrentContext();02    NSArray *colors = [NSArray arrayWithObjects:03         

2014-01-04 20:14:37 6671 2

转载 kvo

为了接收某个属性的键-值观察通知,以下三个要素是必须的:被观察的类当中你关心的属性必须是遵循键-值观察的,这一细节在 “确保遵循KVO” 中有所讨论。你必须使用以下方法,将观察方对象与被观察方对象注册: :forKeyPath:options:context:.观察方的对象必须实现以下方法: observeValueForKeyPath:ofObject:change:

2014-01-04 15:40:20 609

原创 UIScrollView add button

为了使直接加载到UISCrollView的button响应click event,需要继承UIScrollView重写- (BOOL)touchesShouldCancelInContentView:(UIView *)view{ return ![view isKindOfClass:[UIButton class]]; }

2014-01-03 20:39:33 1598

转载 UINavigationController 自定义动画

1.添加QuartzCore并引入头文件#import  2. PushView 的动画修改       CATransition *transition = [CATransition animation];        transition.duration = 1;        transition.timingFunction = [CA

2014-01-02 20:19:54 1500

转载 Locating Memory Issues in Your App

Locating Memory Issues in Your AppManaging the memory that your app uses is one of the most important aspects of creating an app. From the smallest iOS device to the largest OS X computer, memory

2014-01-02 20:17:32 1104

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