自定义博客皮肤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开发学习过程中的点点滴滴,欢迎交流~~

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

转载 ios 多线程

概览大家都知道,在开发过程中应该尽可能减少用户等待时间,让程序尽可能快的完成运算。可是无论是哪种语言开发的程序最终往往转换成汇编语言进而解释成机器码来执行。但是机器码是按顺序执行的,一个复杂的多步操作只能一步步按顺序逐个执行。改变这种状况可以从两个角度出发:对于单核处理器,可以将多个步骤放到不同的线程,这样一来用户完成UI操作后其他后续任务在其他线程中,当CPU空闲时会继续执行,而此时对于

2015-10-31 23:24:54 431

转载 ViewController详解

一、生命周期当一个视图控制器被创建,并在屏幕上显示的时候。 代码的执行顺序1、 alloc                              创建对象,分配空间2、init (initWithNibName)  初始化对象,初始化数据3、loadView          从nib载入视图 ,通常这一步不需要去干涉。除非你没有使用xib文件创建视图4、viewDid

2015-10-30 23:38:34 352

转载 sqlite第三方类库:FMDB使用

原文地址:2NSString *documentDirectory = [paths objectAtIndex:0];4FMDatabase *db = [FMDatabase databaseWithPath:dbPath] ;6   NSLog(@“Co

2015-10-29 13:59:54 289

原创 apple各种型号设备对应的Size Class

可以总结为: 如果项目不支持横屏显示,使用w:Compact h:Regular(或者直接取消使用Size Class) 如果项目支持横屏显示,使用w:Compact h:Regular+w:Any h:Compact 对于一些公有的约束(任意组合中都适用),一般放在w:Any h:Any中设置 iPad同理iPhone4

2015-10-01 10:15:17 490

原创 Effective Objective-C 2.0 学习笔记

第4条:多用类型常量,少用#define预处理指令编译单元内的常量,命名规则为变量名前加k// 实现文件static const NSTimeInterval kAnimationDuration = 2.25f;static NSString *const kConstant = @"VALUE"; 全局常量,命名规则为变量名前加类名// 头文件extern

2015-09-29 22:33:43 595

原创 在mac下配置github

参考http://www.cnblogs.com/heyonggang/p/3462191.htmlhttp://blog.csdn.net/daleiwang/article/details/31347387新建工程后Push,参考下面文章第6点http://www.2cto.com/kf/201504/390397.html其中创建目录和查看文件命令如下

2015-09-27 19:58:18 324

转载 Quartz 2D中的坐标变换

一、特殊的坐标变换(平移、缩放、旋转)1. - void CGContextTranslateCTM ( CGContextRef c, CGFloat tx, CGFloat ty ):平移坐标系统。该方法相当于把原来位于 (0, 0) 位置的坐标原点平移到 (tx, ty) 点。在平移后的坐标系统上绘制图形时,所有坐标点的 X 坐标都相当于增加了 tx,所有点的 Y 坐标都相当

2015-09-23 20:30:33 354

原创 使用AVSpeechSynthesizer朗读文字

使用苹果提供的语音合成器,可以通过简单的代码做到朗读文本。#import // 创建嗓音,指定嗓音不存在则返回nilAVSpeechSynthesisVoice *voice = [AVSpeechSynthesisVoice voiceWithLanguage:@"zh-CN"]; // 创建语音合成器AVSpeechSynthesizer *synthesizer

2015-09-21 13:14:02 2763

转载 ios开发UIImage imageNamed方法的误用

[UIImage imageNamed:@"icon.png"]用上面的方法加载图片有问题。该方法即可以从bundle中读取图片。这种方法在application bundle的顶层文件夹寻找由供应的名字的图象 。如果找到图片,装载到iPhone系统缓存图象。那意味图片是(理论上)放在内存里作为cache的。因此如果图片资源多了或大了,此方式容易引起发生内存警告从而导致自动退出

2015-09-19 17:22:21 471

转载 实现 iOS 后台定位的两种方式

工作中碰到一个定位的应用场景:app需要在后台运行,实时上传用户地理位置。苹果对iOS的规范性在提升了app的品质的同时也带来了对开发者的限制。翻阅了各种官方文档和资料,得出结论如下:1、实现后台定位有2种方式:standard location service(调用CLLocationManager的startUpdatingLocation)signif

2015-08-13 08:34:30 700

原创 Foundation Framework 文件 NSFile​Manager

参考文章http://nshipster.cn/nsfilemanager/确定文件是否存在NSFileManager *fileManager = [NSFileManager defaultManager];NSString *documentsPath = [NSSearchPathForDirectoriesInDomains(NSDocumentDirector

2015-08-07 16:35:00 479

原创 表视图 TableView 的使用

1、新建接口 TableViewCell ,用于显示单元格的内容@interface RegionTableViewCell : UITableViewCell@property (strong, nonatomic) IBOutlet UILabel *regionName;@property (strong, nonatomic) IBOutlet UIImageView *regio

2015-08-07 13:01:53 379

原创 UIKit 滚动视图 UIScrollView

为滚动视图添加子视图,推荐使用代码的方式,不推荐嵌入视图的方式UIImage *image = [UIImage imageNamed:@"imageName"];UIImageView *imageView = [[UIImageView alloc] initWithImage:image];[self.scrollView addSubview:imageView];设置滚动

2015-08-06 16:05:49 412

原创 动画 Core Animation 直接修改视图属性

UIView视图的动画功能,可以使在更新或切换视图时有放缓节奏、产生流畅的动画效果,进而改善用户体验。UIView可以产生动画效果的变化包括:位置变化:在屏幕上移动视图。大小变化:改变视图框架(frame)和边界。拉伸变化:改变视图内容的延展区域。改变透明度:改变视图的alpha值。改变状态:隐藏或显示状态。改变视图层次顺序:视图哪个前哪个后。

2015-08-05 16:46:28 665

原创 UIKit 手势识别 UIGestureRecognizer

1、创建手势识别器,并添加到视图中创建手势识别器,其中参数 initWithTarget 指出了处理手势的对象,参数 action 指出了处理手势的方法名。UIPinchGestureRecognizer *pinchRecognizer= [[UIPinchGestureRecognizer alloc] initWithTarget:self

2015-08-05 07:45:38 675

原创 UIKit 视图 UIView

UIView的两种创建方式1、通过 storyboard 进行创建2、通过代码创建  [[UIView alloc] initWithFrame:(CGRect)],可以用 CGRectZero 作为参数示例:CGRect rect = CGRectMake(0, 0, 50, 60);UILabel *label = [[UILabel alloc] initW

2015-08-05 07:21:06 379

原创 UIKit 选项卡栏控制器 UITabBarController (未完成)

UIViewController

2015-08-03 20:19:21 366

原创 设计模式 观察者 NSNotificationCenter

默认的广播站,类似 NSUserDefault 的共享实例[NSNotificationCenter defaultCenter]; 注册观察者,开始收听广播[[NSNotificationCenter defaultCenter] addObserver:(id)observer // 收听广播的观察者,控制器是最常见的观察者,所以此参数通常为self

2015-07-31 10:10:59 360

原创 UIKit 视图的生命周期

viewDidLoad只会在屏幕出现前执行一次,在此处可以t添加一次性的初始化代码,但是此时屏幕视图并没有构建出来,因此,在此处无法获得视图的相关几何信息,从而无法确定用户的屏幕尺寸。- (void)viewDidLoad { [super viewDidLoad]; // 添加初始化信息}视图即将出现在屏幕上时,viewWillAppear 会被调用,当存在

2015-07-30 11:33:42 476

原创 UIKit 带属性的字符串 NSAttributedString、NSMutableAttributedString、NSTextStorge(未完成)

NSAttributedString是一个带有属性的字符串,通过该类可以灵活地操作和呈现多种样式的文字数据。NSTextStorge是NSMutableAttributedString的子类NSString *string = @"你知道怎么在一个label设置不同的颜色嘛?"; NSMutableAttributedString *attrString = [[NSMut

2015-07-30 09:20:26 439

原创 Foundation Framework 轻量级本地数据存储 NSUserDefaults

NSUserDefaults是一种轻量级本地数据存储,是一个永久的NSDictionary,适合存放少量数据,操作方便,但仅支持NSNumber(Integer、Float、Double),NSString,NSDate,NSArray,NSDictionary,BOOL类型//保存数据到NSUserDefaults -(void)saveNSUserDefaults {

2015-07-29 16:23:19 366

原创 Foundation Framework 字典 NSDictionary

NSDictionary 可以将数据以键值对儿的形式储存起来,取值的时候通过KEY就可以直接拿到对应的值,字典中所有对象都是strong类型的指针。创建字典的两种方式,可变字典不能使用第二种方法NSDictionary *tires = [NSDictionary dictionaryWithObjectsAndKeys: t1, @"tire 1", t2, @"

2015-07-29 15:09:56 340

原创 Foundation Framework 基本数据封装 NSNumber、NSValue、NSData

NSNumber、NSValue、NSData用于将C语言基本数据类型封装成类对象,从而可以通过 NSArray、NSDictionary 来存取。NSNumber 用于封装基本数值类型,创建NSNumber的两种方法:NSNumber *number;number = [NSNumber numberWithChar:'X']; // 字符型number =

2015-07-29 10:41:16 332

原创 Foundation Framework 数组 NSArray、NSMutableArray

NSArray 数组NSArray是一个有序的、可变的集合,一旦创建则不能添加、修改、删除。数组中所有对象都是strong类型的指针。创建数组的两种方法,可变数组不能使用第二种方法。NSArray *array = [NSArray arrayWithObjects:@"one", @"two", @"three", nil];NSArray *array = @[@"one"

2015-07-29 09:34:05 298

原创 Foundation Framework 常用类使用方法

NSObjectdescription方法是NSObject自带的方法,包括类方法和对象方法,用于输出描述类或对象的字符串。NSObject(NSString *)description(){ return [NSString stringWithFormat:@"姓名: %@ 年龄: %d",name,age];}自定义类需要自己实现下面两个拷贝方法。-(id

2015-07-29 08:19:15 351

原创 iOS中的基本 UI 控件的使用

UILabelself.touchCountLable.text  获取 Label 的字符串UIButtoncurrentTitle Button上的字符串setBackgroundImage 设置背景图片setTitle 设置按钮上的字符串UIImageimageNamed 根据指定字符串获取image

2015-07-26 22:12:36 365

原创 iOS中的类、属性的创建、使用流程

OC中每一个类都有一个.h文件和.m文件,.h文件存放公共的API,其他模块可以调用,.m文件文件存放私有API和所有的接口实现。示例:Card.h 文件:#import @interface Card : NSObject@property (strong,nonatomic) NSString *contents;@property (nonat

2015-07-26 11:12:12 413

原创 Foundation Framework 日期 NSDate

NSDate存储的是世界标准时(UTC),输出时需要根据时区转换为本地时间。1、获取当前时间NSDate * dt = [NSDate date];//获取的时间date减去24小时的时间(昨天的这个时候) NSDate *yesterday = [NSDate dateWithTimeIntervalSinceNow:-(24*60*60)];2、将 NSD

2015-07-22 14:41:18 341

原创 自定义数据类型的序列化

1、为自定义数据类型添加 NSCoding 协议,实现该协议的接口- (void)encodeWithCoder:(NSCoder *)aCoder;- (id)initWithCoder:(NSCoder *)aDecoder;2、序列化对象的属性id 类型的属性直接用  aCoder encodeObject: forKey: 序列化;基础数值类型要用 NSNumber

2015-07-20 19:02:56 499

原创 页面跳转与数据传递

使用 segue 实现页面跳转[selfperformSegueWithIdentifier:@"EditNewRegion"sender:nil];

2015-07-18 18:31:37 362

原创 地球坐标转换成火星坐标的代码

// 火星坐标系转换扩展,.h文件/* 从 CLLocationManager 取出来的经纬度放到 mapView 上显示,是错误的! 从 CLLocationManager 取出来的经纬度去 Google Maps API 做逆地址解析,当然是错的! 从 MKMapView 取出来的经纬度去 Google Maps API 做逆地址解析终于对了。去百度地图API做逆地址解析,依旧是错

2015-07-16 16:41:02 782

转载 @property和@synthesize的一些见解

@property和@synthesize有以下两个作用:1.作用一@property是在头文件.h中声明一个变量的setter和getter方法。@synthesize是在m文件中定义setter和getter方法的实现。2.作用二@property,在声明变量方法的时候可以附加定义该变量的属性。如retain,assign,readonly,nona

2015-06-15 06:09:42 250

空空如也

空空如也

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

TA关注的人

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