自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(49)
  • 资源 (7)
  • 收藏
  • 关注

原创 AppDelegate模块化历程

源码地址: GHApplicationMediator为什么AppDelegate不容易维护AppDelegate控制着App的主要生命周期,比如App初始化完成后构建主视图,App接收到远程消息回调,Url-Scheme回调,第三方SDK初始化,数据库初始化等等。基于这个原因,随着App的版本迭代,AppDelegate中的代码量会越来越大。当AppDelegate的代码量到达一定程度时,...

2019-03-06 16:59:24 387

翻译 SlideTransition class

官方文档SlideTransition classSlideTransition classAnimates the position of a widget relative to its normal position.相对于控件的正常位置进行位置动画。The translation is expressed as a Offset scaled to the child’s si...

2019-03-04 00:02:12 381

翻译 SizedBox class

官方文档SizedBox classSizedBox classA box with a specified size.具有指定大小的盒子If given a child, this widget forces its child to have a specific width and/or height (assuming values are permitted by this ...

2019-03-04 00:01:48 264

翻译 Positioned class

官方文档Positioned classPositioned classA widget that controls where a child of a Stack is positioned.一个用来控制它的子控件在Stack中的放置位置。A Positioned widget must be a descendant of a Stack, and the path from t...

2019-03-04 00:01:24 243

翻译 LayoutBuilder class

官方文档LayoutBuilder classLayoutBuilder classBuilds a widget tree that can depend on the parent widget’s size.构建依赖于父控件大小的控件树Similar to the Builder widget except that the framework calls the builder...

2019-03-04 00:00:54 527

翻译 Flexible class

官方文档Flexible classFlexible classA widget that controls how a child of a Row, Column, or Flex flexes.用于控制Row、Column、Flex子控件的控件。Using a Flexible widget gives a child of a Row, Column, or Flex the ...

2019-03-04 00:00:13 144

翻译 ConstrainedBox class

官方文档ConstrainedBox classConstrainedBox classA widget that imposes additional constraints on its child.ConstrainedBox 可以为它的子控件强制加上一个约束条件。For example, if you wanted child to have a minimum height ...

2019-03-03 23:51:30 291

原创 AsyncDisplayKit(Texture)原理分析

ASDK涉及的UI任务Layout文本宽高计算视图布局计算Rendering文本渲染图片解码图形绘制UIKit Objects对象创建对象调整对象销毁ASDK尝试将这些任务放到异步线程处理,如UIKit与CoreAnimation只能在主线程操作的,则进行优化。ASDisplayNodeUIView与CALayer只能在主线程创建和销毁,所以ASDK创建了A...

2019-02-26 11:24:39 1117

翻译 【Flutter】Stateful widgets与Stateless widgets

前言在创建一个Flutter App的时候,会遇到两种类型的控件有状态控件(stateful widgets)无状态控件(stateless widgets)Stateless Widgets在创建控件的时候,有一些控件不需要管理控件内部状态,这个时候就可以选择无状态控件。无状态控件除了用数据初始化以外的时刻,不需要改变它的状态。在Flutter中,比较常见的有Text,Raise...

2019-02-25 19:13:04 253

原创 CoreData的性能调优

查询优化查询情况分为三种对象在当前Managed Context中(尚在内存中)。对象在持久化存储协调器中。对象需要从sqlite文件读取(I/O读取)。当内存允许的时候,能同时取出的对象,不要分多次取出。设置合理的Predicates限制更大的筛选条件应当放在优先位置,更好地提高筛选效率。查询字符串速度比较慢,所以(age > 10 )AND (name LIKE ‘J...

2019-02-25 14:37:43 1038

原创 CoreData的优缺点

总结一下关于CoreData的使用经验优点便利性即使直接使用SQLite,在业务层也不应当直接操作SQL语句。数据库操作最终都是被封装起来使用的。这样直接操作SQLite和使用CoreData区别不大。存储性能CoreData也是使用SQLite格式作为磁盘存储格式,所以性能上区别也不大。查询性能打开CoreData的Debug模式,可以看CoreData具体执行了多少的SQL语句,...

2019-02-25 14:37:02 1438

原创 CoreData渐进式迁移

渐进式迁移创建MappingModel创建一个迁移文件(.xcmappingmodel),指定需要迁移版本与目标版本。在Mapping中可以使用NSEntityMigrationPolicy实现自定义数据迁移。APP启动后,检测数据库是否需要迁移。1. 调用NSPersistentStoreCoordinator,获取当前Model(NSManagedObjectModel)的MetaD...

2019-02-20 15:18:57 232

原创 iOS 多线程篇

NSOperationQueue的工作流程NSOperationQueue在初始化是,可以指定并发数有NSOperation被加入到队列中,队列开始排期执行。当NSOperation被执行完毕,会用列表中被移除。当所有的NSOperation都被执行完,队列任务完成。自定义NSOperation并发NSOperation有三种状态:Ready、Executing、Finished。...

2019-01-16 17:15:09 119

原创 iOS UI性能优化篇

列表优化列表元素高度动态计算会增加CPU消耗,可以进行缓存,减少计算量列表元素中的固定图片使用imageByName获取,系统会自动在内存中进行缓存。减少列表元素的个数和层级,复杂UI可以考虑通过CoreGraphics绘制减少透明View多层级使用,多个层级的透明View渲染会增加CPU消耗。离屏渲染离屏渲染需要开辟一个新的缓存区进行渲染操作,然后进行上下文切换,将从当前屏幕切换...

2019-01-16 17:04:09 552 1

原创 iOS 网络篇

NSURLSession工作流程NSURLSessionDataTask 发起一个POST HTTP请求创建一个NSSessionConfiguration用Configuration创建一个NSURLSession,设置缓存策略,delegate,Task所在线程创建一个NSURLRequest,设置请求类型为POST,构造HTTP Header,将参数放入HTTPBody用NSUR...

2019-01-14 18:29:55 485

原创 Flutter Mac iOS 环境配置

官方文档:https://flutter.io/docs/get-started/install/macos1.需要的命令行工具bashcurlgit 2.xmkdirrmunzipwhich2.SDK下载地址flutter_macos_v1.0.0-stable.ziphttps://storage.googleapis.com/flutter_infra/releases...

2019-01-14 18:13:29 1180

原创 UIImage的马赛克处理

马赛克的原理:将原有图一个像素点的颜色扩散到周围的像素点,使多个像素点的颜色都显示相同颜色,相当于分辨率下降,图像就会变得模糊不清。如下代码每个像素为8位颜色值,四个通道,分别表示ARGB(透明度、红、绿、蓝)。对图片进行逐行扫描,如level为10,拷贝出坐标(0,0)点的颜色,将坐标(0,0)至坐标(10,10)都使用这个坐标(0,0)点的颜色,这样就达到了马赛克的效果下面这段代码也...

2019-01-10 17:17:16 444

原创 短视频按压拍摄自定义方案(GinCamera/GinVideoCaptureViewController)

短视频按压拍摄自定义方案(GinCamera/GinVideoCaptureViewController)DEMO地址GinCamera这里只做方案思路的讲解,具体实现,请参考DEMO实现的功能有点类似于微信的短视频拍摄功能1.按下拍摄按键,开始拍摄。2.松开拍摄按键,保存内容。3.每一段拍摄结束可以选择放弃,或者结束拍摄。4.提供闪光灯功能,摄像头切换功能。逻辑部分可以看出...

2019-01-07 18:41:52 369

原创 iOS 自定义视频拍摄开发(GinCamera/GinVideoCaptureManager)

iOS 自定义视频拍摄开发(GinCamera/GinVideoCaptureManager)先附上DEMO[GinCamera] (https://github.com/ginhoor/GinCamera)视频拍摄和照片拍摄差不多,只是数据方面多了一个音频。同样具体的详细创建过程请直接下载demo查阅主要对象@property (strong, nonatomic) AVCaptur...

2019-01-07 18:37:15 1383

原创 iOS 自定义照片拍摄开发(GinCamera/GinPhotoCaptureManager)

iOS 自定义照片拍摄开发(GinCamera/GinPhotoCaptureManager)先附上DEMO[GinCamera] (https://github.com/ginhoor/GinCamera)具体的详细创建过程请直接下载demo查阅,本教程主要是为了补充基础概念和一些注意事项将要用到的类有:AVCaptureDeviceAVCaptureDeviceInputAVCa...

2019-01-07 18:33:31 789

原创 关于iOS视频、音频权限检测(GinCamera/GinAVCaptureManager)

关于iOS视频、音频权限检测(GinCamera/GinAVCaptureManager)先附上DEMOGinCamera/** 检查麦克风授权 */(BOOL)checkAudioAuthorization{ return [self checkAuthorizationStatus:AVMediaTypeAudio];}/** 检测摄像头授权 */(BOOL...

2019-01-07 18:25:06 2328

原创 Xcode10 #import 不提示头文件

做个笔记,如果Xcode 出现Import 后不自动提示已存在的头文件,可以试下修改下这个设置Xcode --> File --> Workspace Settings --> Build System --> Legacy Build System...

2019-01-04 11:00:12 1118

原创 部署Scrapy项目

scrapyd操作笔记爬虫线程pip install scrapyd安装依赖(自动生成egg文件)pip install scrapyd-clientpip install apschedulerpip install requests查看所有爬虫curl http://localhost:6800/listspiders.json?project=VehicleOrderScra...

2019-01-03 17:03:36 288

原创 UIScrollView(UITableView、UICollectionView)Autolayout横屏frame自动变动

描述下问题出现的场景【1】 ViewControllerA 是竖屏的VC,VC中有一个CollectionView。ViewControllerB是横屏的VC。【2】跳转方式为 present通过- (void)scrollViewDidScroll:(UIScrollView *)scrollView查看到,当VCA跳转到VCB的时候,collection view的frame、conte...

2019-01-03 16:41:59 689

原创 基于NSOperation的串行线程

背景介绍:在接入七牛SDK的时候,发现SDK没有批量上传图片的接口,业务又涉及到了上传进度统计,并且要求一次性的图片完整上传。开始的时候打算用GCD,写着写着感觉扩展性不好,可读性不高,取消机制也不是很友好,线程不能暂停,于是改成了NSBlockOperation来实现.h文件/** 串行队列 @param dataList 数据源 @param opreationBlock 运行...

2019-01-03 13:05:16 358

原创 灵活的弹出层方案Popup

为了解决业务中经常出现的弹层问题,我抽象了一个简单的弹层框架。这个框架写的很简单,基本看两眼就懂了,也容易扩展。框架有三部分组成,内容层(View),背景渲染层(View),视图控制器(ViewController)、管理者(简单分装用法)主要思路是,创建一个自定义window,并作为keyWindow遮盖在当前window之上。在这个window上再绘制需要的背景,内容,动画效果。这个...

2019-01-03 13:03:58 3117

原创 补充YYModel无法直接关联CoreData

好久没写博文了,18年真是忙碌的一年,一眨眼居然就19年了,居然空了一年没写,今年先开个好头吧,整理一下去年的积累。JSON转Model是一个很长常见,又非常繁琐的技术方案,好在现在有很多第三方库支援,让我们不用重复造轮子。博主一直都喜欢用Mantle框架,无奈Mantle框架的model定义过于繁琐,尤其是类型转换。于是就转投了YYModel的怀抱,在此感谢下YYModel的作者(YYMode...

2019-01-03 13:02:06 392

原创 关于IJKPlayer的静态库合并生成以及引用

根据IJKPlayer的README来配置项目下面逐句解释下【1】git clone https://github.com/Bilibili/ijkplayer.git ijkplayer-ios 通过git下载ijkplayer的项目【2】cd ijkplayer-ios git checkout -B latest k0.7.8.【3】./in...

2017-04-07 12:21:01 1689

原创 《iOS开发进阶》阅读总结

1.引用计数的作用对象A向对象B传递参数对象M ,对象M可能成为对象B的成员变量,也可能只是临时使用,如果不用引用计数控制,则无法在正确的时间释放对象M。案例一:对象A将对象M传递给对象B后,对象B复制一份对象M的拷贝M1,然后对象A释放对象M,这样由对象B继续维护对象M1的生命周期。缺点:会带来更多的内存申请、复制、释放的工作,影响性能。案例二:对象A将对象M传递给对...

2017-03-31 14:29:50 747

原创 关于iOS TDD&BDD的学习与使用

TDD(测试驱动开发 TestDrivenDevelopment),相比传统的开发流程,会先写测试,待测试通过再实际开发功能模块。这样的好处是在你使用这些已经测试过的功能时,不用担心他们的可用性。BDD(行为驱动开发Behavior DrivenDevelopment),相比TDD,相关测试代码更加集中,也更加简单易懂相关链接:TDD的iOS开发初步以及Kiwi使用入门...

2015-09-08 13:52:48 832

原创 《iOS高级内存管理编程指南》学习笔记

Object-C 一共有3种内存管理方式:1. MRR(Manual Retain-Release)手动持有-释放。采用了引用计数模型,由基础类NSObject和运行时(Runtime Eviroment)共同提供。2. ARC (Automatic Retain-Count)自动引用计数。此方式采用与MRR相同的引用计数系统,但是在编译时(Compile-time)插入了内存管理的方法...

2015-02-11 17:16:37 767

原创 多种Cell的CollectionView

制作拥有两个Cell的TableView还是比较容易的,创建一个拥有多种类型Cell的CollectionView还是需要一点设计的。首先需要创建一个继承UICollectionViewFlowLayout的layout,用来指定不同的cell在CollectionView中如何正确的显示。需要实现的方法:(CGSize)collectionViewContentSiz...

2014-12-13 11:28:06 3780

原创 CoreData与Mantle的结合使用案例

Mantle(https://github.com/Mantle/Mantle)是一个用于操作CoreData的封装库。这个库的作用有两个,一是方便的对包含json数据的NSDictionary对象进行解析,并且使用其初始化对象。二是可以方便的将对象存储到CoreData中去。先说第一个功能点。首先你的类需要继承MTLModel,然后实现MTLJSONSerializing ...

2014-12-09 11:28:40 1634

转载 Mantle with CoreData

PS:网上流传的最多的一篇关于Mantle的文章,但是大家都没注明作者,有谁知道的可以留言下,我会补充上去。Mantlemakes it easy to write a simple model layer for your Cocoa or Cocoa Touch application.Mantle can still be a convenient translation l...

2014-11-24 10:41:02 972

原创 TextFiled 不响应点击

textFiled 添加到自定义view中不响应解决方案:尝试将view在init的时候就addsubview(谁知道的解释下,总感觉这法子不太好)

2014-11-19 18:09:54 677

原创 Cannot find executable for CFBundle 解决办法

出错日志为:2013-12-29 01:17:49.785 Displaying Alerts with UIAlertView[419:70b] Cannot find executable for CFBundle 0x8cd3d40 </Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platf...

2014-11-19 17:11:31 1625

原创 iOS7 返回手势失效问题

1.在返回按钮被自定义的时候可能失效2.navigationBar隐藏时可能失效解决方法:将delegate = nil

2014-11-19 16:13:02 632

原创 Xcode方法提示不显示的解决办法

Xcode方法提示显示的不正确,只显示方法名称不显示参数及参数值的解决办法是:右击“Finder” 选择 “前往文件夹” 输入 “~/Library”,进入“Developer”  -> "Xcode" -> "DerivedData",删除所有东西,重启Xcode。也有人说是文件中存在

2014-11-19 16:09:00 854

原创 iTunes出现提示“iTunes不能读取iPhone的内容,请前往iPhone偏好设置的摘要选项卡,然后点击“恢复”以将此iPhone恢复为出厂设置。”

有次iTunes出现提示“iTunes不能读取iPhone的内容,请前往iPhone偏好设置的摘要选项卡,然后点击“恢复”以将此iPhone恢复为出厂设置。”,死活连不上iTunes不用重新刷机,动动你的双手简单修改下文件就OK了用 同步助手或pp助手 打开文件管理功能,进入/var/Mobile/Media/下,将iTunes_Control文件夹删除再重新连就没

2014-11-19 16:03:37 12052

原创 UIWebView自动侦测电话,邮件,地址问题

是不是碰到过在webview中一些例如“00.12”或者“13-24”这样的数字被识别成电话号码,或者一个“[email protected]”被识别成邮件链接。手生的同学可能找不到对策,其实webview中是有属性可以控制是否侦探这些连接的,如果你什么都不需要侦探就可以把webview.dataDetectorTypes设置成UIDataDetectorTypeNone。以下是文档

2014-11-19 15:29:04 1034

一个简单的TableVIew

简单的实例,主要用XIb实现了TableView的基础功能

2012-10-26

AppStore审核指南

感谢您付出宝贵的才华与时间来开发iOS应用程程序。从职业与报酬的角度而言,这对于成千上万的开发员来说一直都是一项值得投入的事业。我们希望帮助您加入这个成功的组织。这是我们首次发布《应用程序商店评估指导》(App Store Review Guidelines)。   通过它,我们希望帮助您解决开发应用程序时遇到的问题,以便于您在提交应用程序时,可以加快审批流程的速度。

2012-10-15

Android 如何在自己的应用中模拟Home键

 今天在做一个应用的时候要用到类似于QQ按返回键并不销毁Activity的 方法(即不调用Activity.finish(),系统不调用onDestroy),而是类似于按Home键,让Activity类似于“暂停”(即只 调用onPause,onDestroy)。

2012-10-13

Gson简要使用笔记

最近在做一个java web service项目,需要用到jason,本人对java不是特别精通,于是开始搜索一些java平台的json类库。 发现了google的gson,因为之前对于protocolbuf有一些了解,带着一些好奇心,我开始使用了gson。

2012-10-13

android 手机端 编辑数据库

安装此apk可以让你在手机上编辑和查看 你应用的DB文件内容

2012-10-13

win7下共享wifi给desire HD使用(非临时网络)

win7下共享wifi给desire HD使用(非临时网络)

2012-10-13

App Store:开发者营销广告指南

综述 该指南旨在帮助iOS开发者计划的成员与App Store在网页、广告以及其他营销交流方面建立正确的联盟关系。这些指导原则包括了App Store徽章使用的重要信息,App Store的最佳营销策略以及苹果产品图像的使用细节。

2012-10-13

空空如也

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

TA关注的人

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