自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(57)
  • 收藏
  • 关注

原创 iOS中的单例到底怎么写?

什么是单例模式自行百度。单例模式的好处自行百度。重点! iOS中的单例到底怎么写?无争议的部分,静态变量+dispatch once(线程安全)争议部分,alloc/copyWithZone/mutableCopyWithZone的重写既然是在Cocoa下,当然要学习苹果怎么实现,最大限度保持自己的单例和苹果的单例相似。 于是乎,我就闲的蛋疼利用[NSUserDefault standardUse

2017-03-27 20:05:37 793

原创 iOS 关于线程安全的Tips

atomic 不能绝对的保证线程安全Set这是 OC 中设置属性 与原子性有关情况所做的操作 if (!atomic) { oldValue = *slot; *slot = newValue; } else { spinlock_t& slotlock = PropertyLocks[slot]; slotlock.lo

2017-03-25 11:54:40 1158

原创 深入探究 Objective-C Target Point

Tagged Pointer 介绍苹果对于Tagged Pointer特点的介绍:Tagged Pointer专门用来存储小的对象,例如NSNumber和NSDateTagged Pointer指针的值不再是地址了,而是真正的值。所以,实际上它不再是一个对象了,它只是一个披着对象皮的普通变量而已。所以,它的内存并不存储在堆中,也不需要malloc和free。在内存读取上有着3倍的效率,创建时比

2017-03-10 12:56:25 1698 2

原创 iOS 轮播视图的实现方式 和 RunLoopMode 的注意

通过 CollectionView 实现需要哪些组件collectionViewpageControlNSTimercollectionViewcell 图片的载体contentsOffset 内容的偏移量indexpath 当前滚动的cell的indexPath如何轮播? NSInteger curIndex = (self.collectionView.contentOffse

2017-02-08 22:24:28 1359

原创 iOS 代码书写的整洁与美化

1.善用#pragma mark利用pragma mark xxx 分割你的代码 例如一个视图控制器可以分割为如下部分Class Methods 类方法View Life Cycle 控制器视图生命周期Setter 方法Getter 方法Actions Button 的行动Help Methods 辅助方法Deleagte/DataSource 协议这时候,方法列表是这样的多用Se

2017-02-08 00:00:27 773

原创 iOS Objc Runtime 教程+实例Demo

例子Demo 欢迎给我star!我会继续分享的。概述Objc Runtime使得C具有了面向对象能力,在程序运行时创建,检查,修改类、对象和它们的方法。Runtime是C和汇编编写的,这里http://www.opensource.apple.com/source/objc4/可以下到苹果维护的开源代码,GNU也有一个开源的runtime版本,他们都努力的保持一致。应用场景将某些OC代码转为运行

2017-02-05 19:19:14 1063

原创 Objective-C @protected @private @public @package

@protected 该类和所有子类中的方法可以直接访问这样的变量。@private 该类中的方法可以访问,子类不可以访问。@public 可以被所有的类访问@package 本包内使用,跨包不可以@protected 只暴露给子类@private 私有属性,不想暴露出去@public 暴露给外部的属性@package 适合用于开发第三方的静态类库

2017-02-04 21:20:49 514

原创 iOS PhotoKit 教程

Demo,简单实现了照片选择器的功能PhotoKitDemo 欢迎给Star!!!PHAsset: 代表照片库中的一个资源,跟 ALAsset 类似,通过 PHAsset 可以获取和保存资源PHFetchOptions: 获取资源时的参数,可以传 nil,即使用系统默认值PHAssetCollection: PHCollection 的子类,表示一个相册或者一个时刻,或者是一个「智能相册(系

2017-02-03 16:36:49 1483

原创 iOS Auto Layout intrinsicContentSize 内容大小

intrinsicContentSize 内在内容大小使用AutoLayout 时,视图内容的大小通过每个视图的 intrinsicContentSize 属性表达,它描述了在数据未经压缩或剪裁的情况下表达视图全部内容所需的最小空间。该属性源于每个视图所呈现内容的自然属性。对于图像视图,内在内容大小与其呈现的图像大小相符。图像越大,需要的内容大小也越大。 对于按钮,内在内容的大小随着按钮的名称而变

2017-01-28 19:07:28 1410

原创 iOS Core Animation 性能调优 学习笔记

高效绘图一些关键词软件绘图上下文:指代软件绘图(意即:不由GPU协助 的绘图)软件绘图通常是由Core Graphics框架完成来完成 绘制速度 OpenGL>Core Animation>Core Graphics 消耗可观的内存 CALayer 只需要一些与自己相关 的内存:只有它的寄宿图会消耗一定的内存空间。即使直接赋给 contents 属性一 张图片,也不需要增加额外的照片存储大小。

2017-01-25 17:32:10 1096

原创 XJYChart

XJYChart

2017-01-24 17:04:10 826

原创 iOS 处理视图加载的复杂性

UITableView看看我们的复杂状态量有哪些init 方法updateConstrains 方法drawRect 方法setNeedsDisplaybreakpoint1 - (instancetype)init {};breakpoint2 - (void)setNeedsDisplay {};breakpoint3 - (void)updateConstraints {};b

2017-01-19 01:00:54 622

原创 iOS KVO 键值观察

观察 model 对象的变化在 Cocoa 的模型-视图-控制器 (Model-view-controller)架构里,控制器负责让视图和模型同步。这一共有两步:当 model 对象改变的时候,视图应该随之改变以反映模型的变化;当用户和控制器交互的时候,模型也应该做出相应的改变。KVO 能帮助我们让视图和模型保持同步。控制器可以观察视图依赖的属性变化。让我们看一个例子:我们的模型类 LabColor

2017-01-19 00:59:49 455

原创 Objective-C insertObject:atIndex 和 arrayWithCapacity:

这份代码有几处错误?#import <Foundation/Foundation.h>int main(int argc, const char * argv[]) { @autoreleasepool { // insert code here... NSLog(@"Hello, World!"); NSMutableArray *array

2017-01-16 23:38:18 2607

原创 iOS Objective-C 深入理解Copy

copy如果是不可变的值,行为与strong相同。 如果是可变的值,会将一个副本赋给实例变量。当一个不可变类有一个可变的子类时 (NSString NSMutableString,NSArray NSMutableArray)可以防止setter 方法传递一个 可变的子类的对象。会导致我们在不知情的情况下修改对象的值。经常在哪里使用NSString、NSArray、NSDictionary

2017-01-14 19:31:58 504

原创 iOS 深入理解 @property

@property 的本质是什么? @property = ivar + getter + setter;“属性” (property)作为 Objective-C 的一项特性,主要的作用就在于封装对象中的数据。 Objective-C 对象通常会把其所需要的数据保存为各种实例变量。实例变量一般通过“存取方法”(access method)来访问。其中,“获取方法” (getter)用于读取变

2017-01-13 20:50:56 551

原创 深入探究Block

Block的实质 感觉CSDN并不好看,去我的博客更好看些 https://junyixie.github.io/2017/01/11/Block%E7%9A%84%E9%82%A3%E4%BA%9B%E4%BA%8B/OC中声明一个Block,并且执行int(^example)(int) = ^(int a) { return a;};example(2); clang

2017-01-12 12:46:19 529

原创 iOS NSDate,NSDateFormatter,NSTimeZone,NSTimeInterval

最近开发中做了很多时间处理,总之真的很烦,所以来总结一下。 //NSDate是用来存储时间 //NSDate 的初始化 //初始化一个date对象,获取当前时间和日期。 //注意:1.当前时区是GMT 与北京时间相差8个小时 NSDate *date1 = [NSDate date]; NSLog(@"date1 == %@",date1); /

2016-11-04 14:30:30 708

原创 iOS MapKit 与CLLocation 获取的位置不同

坑爹!-(void)locationManager:(nonnull CLLocationManager *)manager didUpdateLocations:(nonnull NSArray<CLLocation * > *)locations;-(void) mapView:(MKMapView *)mapView didUpdateUserLocation:(nonnull MKUser

2016-10-26 19:28:38 1066

原创 iOS Runtime 动态添加属性不能添加intrinsic类型

- (void)setIsThreeDimensionalMap:(BOOL)isThreeDimensionalMap{ objc_setAssociatedObject(self, @"isThreeDimensionalMap", isThreeDimensionalMap, OBJC_ASSOCIATION_COPY_NONATOMIC);}报错: - Implicit conv

2016-10-26 16:38:47 649

原创 iOS 高德地图(五)绘制点标记

(一)添加默认样式点标记iOS SDK提供的大头针标注MAPinAnnotationView,通过它可以设置大头针颜色、是否显示动画、是否支持长按后拖拽大头针改变坐标等。 ****这里用到的类是 MAPinAnnotationView 让我们对它的属性有个了解。 **继承关系图:  属性图: iOS SDK提供的大头针标注MAPinAnnotationView,通过它可以设置大头针

2016-10-26 16:37:52 5242 2

原创 iOS 高德地图 地理围栏

地理围栏是一个(或多个)圆形的地理边界作为虚拟围栏,当设备进入、离开该区域时,可以接收到消息通知。地理围栏的半径数值需要大于0,如果 APP 退出,围栏随即失效。//使用说明//包含的头文件#import <MAMapKit/MAMapKit.h>#import <AMapLocationKit/AMapLocationKit.h>//视图控制器需要遵循的协议<MAMapViewDelegate

2016-10-26 16:37:10 6723

原创 iOS 高德地图 后台定位

iOS定位SDK提供后台持续定位的能力,可持久记录位置信息,适用于记轨迹录。//对appDelegate的要求#import <AMapFoundationKit/AMapFoundationKit.h>-(BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)laun

2016-10-26 16:36:02 3940

原创 iOS 高德地图 单次定位

定位知识://地图@property (nonatomic, strong) MAMapView *mapView;//位置管理器@property (nonatomic, strong) AMapLocationManager *locationManager;//视图控制器要遵循的协议@interface SingleLocationViewController () <MAMapV

2016-10-26 16:35:19 2616

原创 UIViewController view视图的加载

init-初始化程序 viewDidLoad-加载视图 viewWillAppear-UIViewController对象的视图即将加入窗口时调用; viewDidApper-UIViewController对象的视图已经加入到窗口时调用; viewWillDisappear-UIViewController对象的视图即将消失、被覆盖或是隐藏时调用; viewDidDisappear-UI

2016-10-26 16:33:24 642

转载 【IOS】Target membership

http://www.cnblogs.com/graphics/p/4117353.html【IOS】Target membershipTarget membership是指XCode中,一个文件属于哪一个工程,在XCode左侧的工程面板中选中一个文件,在XCode右侧的属性面板中会显示其Target Membership,如下图。当前的文件AppDelegate.m属

2016-09-19 22:27:25 3431

转载 出现( linker command failed with exit code 1)错误总结

这种问题,通常出现在添加第三方库文件或者多人开发时。这种问题一般是找不到文件而导致的链接错误。 我们可以从如下几个方面着手排查。1.以如下错误为例,如果是多人开发,你同步完成后发现出现如下的错误。[html] view plaincopyUndefined symbols for architecture 

2016-09-19 22:07:52 729

原创 loadrunner controller 试图执行系统不支持的操作

win7 64位操作系统loadrunner controller 试图执行系统不支持的操作解决方法:1.关闭所有杀毒软件,包括360等安全卫士2.重新运行 loadrunner 安装程序3.点击修复安装4.安装好之后,按照之前的破解步骤重新安装这种问题经常是操作系统的问题,重装一个纯净稳定的系统也可以!

2016-08-17 13:08:09 3059

原创 loadRunner 11与浏览器兼容

LoadRunner 兼容的浏览器版本8.0 最高ie68.1 最高ie69.0 最高ie79.5 最高ie811.0 最高ie9( win7 32位+LR11+IE10可用,但win7 64位+LR11+IE10不可用,降至IE9可用),支持firefox3.6、24.0(LoadRunner11 支持哪个版本的Firefox?最新到哪个版本?您可以在:http://

2016-08-17 13:05:54 20490

原创 iOS atomic和nonatomic

atomic和nonatomic用来决定编译器生成的getter和setter是否为原子操作。设置成员变量的@property属性时,默认为atomic,提供多线程安全。nonatomic禁止多线程,变量保护,提高性能。atomic是Objc使用的一种线程保护技术,基本上来讲,是防止在写未完成的时候被另外一个线程读取,造成数据错误

2016-06-10 11:59:33 411

原创 iOS 可读性 readonly

可读性: readonly、readwrite@property(readwrite,....) valueType value;这个属性是变量的默认属性,就是如果你 (readwrite and readonly 都没有使用,那么你的变量就是 readwrite属性 ) ,通过加入 readwrite 属性你的变量就会有 get 和 set 方法。property(rea

2016-06-10 11:54:47 664

原创 iOS CGRectInset

CGRect CGRectInset ( CGRect rect, CGFloat dx, CGFloat dy);返回一个矩形比该源矩形较小或较大的,具有相同的中心点的矩形。原点值是在x轴通过由dx参数以及由使用dy参数指定的距离y轴所指定的距离偏移,并且其大小由(2 * DX,2 * DY),相对于调整源矩形。如果dx和dy是正值,则该矩形的尺寸减小。如

2016-06-10 11:42:18 457

原创 iOS委托

委托Delegate是协议的一种,通过一种@protocol的方式实现,顾名思义,就是委托他人帮自己去做什么事。也就是当自己做什么事情不方便的时候,就可以建立一个委托,这样就可以委托他人帮自己去实现什么方法。

2016-06-07 23:09:45 405

原创 iOS集合视图学习笔记

UICollectionView 和 UICollectionViewController 类是iOS6 新引进的API,用于展示集合视图,布局更加灵活,可实现多列布局,用法类似于UITableView 和 UITableViewController 类。使用UICollectionView 必须实现UICollectionViewDataSource,UICollectionViewDele

2016-06-07 23:06:40 819

转载 iOS集合视图

什么是UICollectionViewUICollectionView是一种新的数据展示方式,简单来说可以把他理解成多列的UITableView(请一定注意这是UICollectionView的最最简单的形式)。如果你用过iBooks的话,可能你还对书架布局有一定印象:一个虚拟书架上放着你下载和购买的各类图书,整齐排列。其实这就是一个UICollectionView的表现形式,或者iPad

2016-06-06 22:17:13 493

原创 iOS SEL

SEL就是对方法的一种包装。包装的SEL类型数据它对应相应的方法地址,找到方法地址就可以调用方法。在内存中每个类的方法都存储在类对象中,每个方法都有一个与之对应的SEL类型的数据,根据一个SEL数据就可以找到对应的方法地址,进而调用方法。在内存中每个类的方法都存储在类对象中每个方法都有一个与之对应的SEL类型的数据根据一个SEL数据就可以找到对应的方法地址,进而调用方法

2016-05-09 22:35:03 521

原创 iOS assign copy retain...含义

assign: 简单赋值,不更改索引计数copy: 建立一个索引计数为1的对象,然后释放旧对象retain:释放旧的对象,将旧对象的值赋予输入对象,再提高输入对象的索引计数为1Copy其实是建立了一个相同的对象,而retain不是:比如一个NSString对象,地址为0×1111,内容为@”STR”Copy到另外一个NSString之 后,地址为0×2222,内容相同,新的

2016-05-09 21:39:19 1333

原创 输出一个数字上各位数字的两种方法

很简单,简单的理一下思路。一种是递归的方法。另一种是迭代的方法。#include#includeusing namespace std;void digui(int a){ if(a==0) return ; digui(a/10); int b=a%10; cout<<b<<endl;}int main(int argc,

2016-04-17 15:53:35 1295 1

原创 STL vector

大小size()empty()max_size()capacity() :返回实际能容纳的元素量容量重要有两个原因:1.一但内存重新分配,vector元素相关的所有reference,pointer,iterator都会失效。2.内存重新分配很耗时间。reserve()保存适当容量,避免重新分配内存。vector(5)实参是个数值,它将成

2016-03-24 21:37:03 398

原创 图书信息借阅管理系统 C语言

这个图书管理系统功能只完善了一部分另一部分将在最近补充上去各部分的注释非常清晰 希望对大家有点用处 #define true 1#define false 0#include #include typedef struct book //图书的信息{ int key;//编号 char bookna

2016-02-26 23:26:42 7686 1

空空如也

空空如也

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

TA关注的人

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