- 博客(129)
- 资源 (83)
- 收藏
- 关注
原创 NSDictionary不区分大小写key读取value
为 NSDictionary 增加 category ,并新增一个根据key读取value的方法:- (id)ObjForKey:(NSString *)key { if (!key || ![key isKindOfClass:[NSString class]] || key.length <= 0) { return nil; } id v ...
2020-03-20 16:07:13
1033
原创 iOS如何实现类似安卓的.9图效果
如题:大家应该都知道安卓经常用.9图吧?而iOS却没有.9图这种东西。其实iOS比安卓更牛逼,安卓需要找UI做个.9图,而很多刚入行的UI压根都不会做.9图。iOS只需要一行代码就能实现.9图的效果。这行代码就是:- (UIImage *)stretchableImageWithLeftCapWidth:(NSInteger)leftCapWidth topCapHeight:(NSI...
2019-03-01 11:51:33
2581
原创 Git cherry-pick 使用总结
假设:假设我们有 branch_01 和 branch_02 两个开发分支,那么我们怎么把 branch_01 上的一个或者几个commit合并到 branch_02 上呢?假设 branch_01 有如下两个commit的hash值59e7e6545a2eda9b82f5795173792e6490c9cd1321b385c03a032d90102f1c8321f7858ff8...
2018-09-11 20:11:18
5871
原创 do{}while(false)
do while 语法:众所周知,do while 循环是执行一遍do{} 里面的代码然后,再去while()判断条件是否为真,为真继续执行do{}里面的代码,否则就跳出循环。当然我们也可以采用 break 跳出循环,也可以采用 continue 结束本次循环开始下一次循环。do { //执行的任务 } while (); //判断条件是否为真do{}wh...
2018-08-31 15:38:53
5678
4
原创 Gerrit出现 Submitted, Merge Pending 的解决办法
Gerrit出现 Submitted, Merge Pending 一、出现这种情况的原因:先是commit1了一次,然后又commit2了一次,由于第一次commit没有去gerrit上submit,导致以后的commit都无法submit了。二、解决办法:先查看本地Git命令历史:git reflog然后在回滚到第一次commit1时的地方:git reset ...
2018-08-02 16:43:15
5773
原创 算法笔记--快速排序
基本思想:将当前待排序列分成两个部分、一个值。一个值:就是选定出一个值作为被比较的元素(基准数)。两个部分:所有比该被选定元素大的部分都去该元素的右边,所有比被选定元素小的部分都去该元素的左边。这样我们就确定了该元素在这个待排序列中的位置,其实也就是我们已经将这个元素“排好了”。举例:快速排序的每一轮处理其实就是将着一轮的基准数归位,直到所有的数都归位为止,排序就结束了。算法实现:int main...
2018-02-12 16:08:51
368
原创 算法笔记--冒泡排序
基本思想:冒泡排序的基本思想是:每次比较两个相邻的元素,如果它们的顺序错误就把它们交换过来。时间复杂度O(N*N)算法实现://**【冒泡排序】**//void bubbleSort() { int a[10], i, j, n, t; scanf("%d", &n); for (i = 0; i < n; ++i) { scanf("%d"...
2018-02-12 14:46:09
258
原创 算法笔记--简单桶排序
题目:假设班上有5个同学,这学期期末考试,这5个同学分别考了5分、3分、5分、2分、8分,满分是10分。接下来将分数从大到小排序,排序后是8 5 5 3 2。实现://**【简单桶排序】**//void simpleBarrelSort() { int a[11], i, j, t; for (i = 0; i < 11; ++i) { a[i] = 0;...
2018-02-12 14:24:24
352
原创 Mapbox使用详解
一、简介:Mapbox致力于打造全球最漂亮的个性化地图。在一次偶然的地图相关资料搜索过程中发现了一个很神奇又很漂亮的地图,这个地图支持高度自定义各种地图元素,比如,道路,水系,绿地,建筑物,背景色,等等。Mapbox打造的Mapbox studio地图制作虚拟工作室,就是一个很完美的地图元素个性化编辑器。另外,我们也可以把自己项目的地理信息数据上传到Mapbox云端,然
2018-01-31 13:11:08
83063
13
原创 oc和swift实现算法:把 x 数字精确到小数点后第 p 位,不足 p 位补 0,然后四舍五入
题目:把 x 数字精确到小数点后第 p 位,不足 p 位补 0,然后四舍五入用Objective-C实现:///把 x 数字精确到小数点后第 p 位,不足 p 位补 0,然后四舍五入- (NSString *)number:(NSString *)x preciseDecimal:(NSUInteger)p {// 四舍五入 NSDecimalNu
2018-01-12 18:00:29
2139
原创 oc和swift实现算法:一个人a年b月c日出生,a,b,c三数的乘积为428575,这个人是什么时候出生的?
题目:一个人a年b月c日出生,a,b,c三数的乘积为428575,这个人是什么时候出生的?用Object-C实现://一个人a年b月c日出生,a,b,c三数的乘积为428575,这个人是什么时候出生的?- (void)p_caclueYearMonthDay { //获取当前年月日 NSDate *date = [NSDate date]; NSDateF
2018-01-11 17:27:29
1207
原创 GCD多线程之多任务并发等待所有任务完成
在实际项目中我们经常会遇到,发出多个网络请求,然后等待所有结果都返回后,再进行下一步操作的需求。那么GCD完美的解决了这个样的需求。第一种方式: //创建队列组 dispatch_group_t group = dispatch_group_create(); dispatch_group_async(group, dispatch_get_global_queue
2018-01-10 18:38:00
3587
原创 iOS 自动化单元测试--XCTest
一、前言:UITest的单元测试能最大限度的解放测试妹妹的双手,当然也会给程序员带来巨大工作量,完整的测试代码估计是项目代码的两倍,另外大家可以自行百度 Xcode Coverage 查看测试代码覆盖率,这篇文章只讲如何在工程中用XCTest框架做单元测试。 其中主要介绍了,用六个按钮示意的UITests使用和性能测试、异步测试的。二、创建工程:先创建个名字为 XCTest 的示例工程: 这
2017-11-25 15:39:12
2262
转载 iOS runtime进行数据解析封装
废话不说直接上代码…代码才是最给力的#import <Foundation/Foundation.h>@interface BPQNetworkingResult : NSObject@property (nonatomic,strong)id Data;@property (nonatomic,strong)NSNumber *Code;@property (nonatomic,strong
2017-10-31 11:04:26
629
转载 BAHome:iOS 面试题收藏录
由于很多同学在面试中总是被噱,群里很多同学都要求整理一份经典的 iOS 面试题,所以,博爱就在简书开了一份面试题收藏录,专门收藏 iOS 面试的经典题目,希望能够给各位 iOS coder 一些帮助,也祝大家能够早点面试成功,顺利进入自己理想的公司! **1、把 “www.zhidao.baidu.com” 这样的字符串改成 “com/baidu/zhidao/www”** 此题目来自百度的面试
2017-10-30 13:39:36
489
原创 iOS 11 适配笔记
一、定位权限:无论是iOS11还是之前的系统版本,定位权限总共就三种:“永不”、“使用应用期间”、“始终” 之前的iOS 10的定位权限是Privacy - Location Always Usage Description //始终Privacy - Location Usage Description //允许定位Privacy - Location When In Use Usag
2017-10-11 17:10:43
1030
转载 iOS开发 | 热点适配完美攻略
开始:当手机热点开启并被其他设备接入时,状态栏会比普通状态下多20px,此时整个视图控制器会被向下推20px,推出屏幕。如果不做相应处理必然会带来糟糕的用户体验,如下,两张对比图(注意下方的tabBar):这是优化前的效果;这是优化后的效果; 那么,针对这种特殊情况我们应该怎样处理呢?基本思路:既然是状态栏的高度变化导致的,那就监听状态栏高度的变化,每当状态栏高度发生变化就发送一个通知,通知相应的
2017-08-31 15:45:58
2519
原创 微信支付SDK中需要实现的各种算法
前言:iOS版的微信支付SDK中需要实现,随机数算法,获取时间戳,签名算法,MD5加密算法,一下是我所实现的这些算法,已经应用到项目了,都是按照微信支付文档上的要求实现的。1、随机数算法实现一个由数字和大写字母随机组成的32位长的字符串。///获取微信支付需要的随机数+ (NSString *)paymentWechatNonceString { NSArray *sam
2017-08-01 11:10:14
1995
原创 iOS开发--指定UIView的某几个角为圆角
在做iOS UI开发的时候我们会经常遇到要把一个矩形view的直角切成圆角,切圆角分两种情况:1、把view的四个直角都切成圆角: //设置圆角半径值 self.view.layer.cornerRadius = 10.f; //设置为遮罩,除非view有阴影,否则都要指定为YES的 self.view.layer.masksToBounds = YES;
2017-07-28 17:56:35
16378
转载 深入剖析 iOS 性能优化
问题种类时间复杂度在集合里数据量小的情况下时间复杂度对于性能的影响看起来微乎其微。但如果某个开发的功能是一个公共功能,无法预料调用者传入数据的量时,这个复杂度的优化显得非常重要了。上图列出了各种情况的时间复杂度,比如高效的排序算法一般都是 O(n log n)。接下来看看下图:图中可以看出 O(n) 是个分水岭,大于它对于性能就具有很大的潜在影响,如果是个公共的接口一定要加上说明,自己调用也要做到心
2017-07-28 11:28:57
5896
转载 ios项目优化
前言在项目业务趋于稳定的时候,开发完迭代需求后,我们可能会无所适从,进入一段空白期,但是对于攻城狮来说闲暇不是件好事,所以我们可能总想学点什么,却又没有头绪。这个时候我们就可以考虑完善和优化我们的项目了。从中可以运用到一些底层RunLoop或者Runtime的知识,熟能生巧总是没错的��结构与架构1.1 结构这里说的结构大概有两点:1.文件目录分类 2.第三方库管理1.1.1 文件目录分类为了方
2017-07-28 11:16:34
1147
原创 ios app上架报错 error- itms 90080,90087,90209,90125 等的解决办法
一、遇到的问题:ERROR ITMS-90087: "Unsupported Architectures. The executable for yht.temp_caseinsensitive_rename.app/Frameworks/VideoCore.framework contains unsupported architectures '[x86_64, i386]'."
2017-07-12 11:28:03
3546
1
转载 iOS响应式架构
自2014年起,移动端的架构中开始渐渐的融入了响应式的元素。时至今日,融入响应式的架构已经在很多产品的多次迭代中经受住了考验。十年后,再回首现在这一时间点,很可能会被认为是一个新的移动端架构时代的开端。很多文章中都提出了针对自己产品研究出来的一套架构,却鲜有文章单独对架构中的响应式元素进行讨论。笔者就写下了这样一篇关于iOS响应式架构的文章来阐述响应式架构的历史、响应式架构的本质、响应式架构的优点
2017-07-04 10:34:08
568
原创 NSURLRequest 各种缓存类型说明
NSURLRequestUseProtocolCachePolicy = 0, //默认的cache policy,使用Protocol协议定义。NSURLRequestReloadIgnoringLocalCacheData = 1,//忽略缓存直接从原始地址下载。NSURLRequestReloadIgnoringLocalAndRemoteCacheData =
2017-06-30 15:34:06
515
转载 Mac 配置FFmpeg环境
假如你的mac 电脑想要看更多格式的视频内容,需要转换视频格式,又不想下载新的App什么的,那么今天我们就来点高大上的手段,根据FFmpeg实现环境的配置来更改视频的格式。例如:将flv格式转换成mp4格式,将mp4转换成mp3等等。FFmpeg官网:(ps:虽然都是英文吧,但是我看不太懂)http://ffmpeg.org/需要工具:1.homebrew2.终端
2017-06-30 11:59:05
591
转载 iOS 保持界面流畅的技巧
由 ibireme | 2015-11-12 | iOS, 技术这篇文章会非常详细的分析 iOS 界面构建中的各种性能问题以及对应的解决思路,同时给出一个开源的微博列表实现,通过实际的代码展示如何构建流畅的交互。Index演示项目屏幕显示图像的原理卡顿产生的原因和解决方案CPU 资源消耗原因和解决方案GPU 资源消耗原因和解决方案AsyncDispl
2017-05-10 13:14:11
519
转载 关于内存泄漏,还有哪些是你不知道的?
前言好久没写东西了,因为最近懒了些,且找不到什么好的题材,所以准备对内存泄漏的问题做一篇整理。内存泄漏问题一直是项目开发中的一大问题,本文力求帮助从事过一段时间工作的iOS开发者快速寻找App中的内存泄漏问题。部分内容比较基础,大神可无视勿喷。一、从AFNet说起对于iOS开发者,网络请求类AFNetWorking是再熟悉不过了,对于AFNetWorking的使用我们通常会
2017-05-02 13:28:20
944
转载 【长篇高能】ReactiveCocoa 和 MVVM 入门
MVC任何一个正经开发过一阵子软件的人都熟悉MVC,它意思是Model View Controller, 是一个在复杂应用设计中组织代码的公认模式. 它也被证实在 iOS 开发中有着第二种含义: Massive View Controller(重量级视图控制器)。它让许多程序员绞尽脑汁如何去使代码被解耦和组织地让人满意. 总的来说, iOS 开发者已经得出结论: 他们需要给视图控制器瘦身,
2017-04-25 18:33:54
970
转载 最快让你上手ReactiveCocoa之基础篇
前言很多blog都说ReactiveCocoa好用,然后各种秀自己如何灵活运用ReactiveCocoa,但是感觉真正缺少的是一篇如何学习ReactiveCocoa的文章,小编看了很多篇都没看出怎么使用ReactiveCocoa,于是决定自己写一遍关于学习ReactiveCocoa的文章,本文主要针对如何从零开始学习ReactiveCocoa,这里非常感谢3个人(支点的雷纯锋,camera
2017-04-25 18:31:35
312
转载 杂谈: MVC/MVP/MVVM
前言本文为回答一位朋友关于MVC/MVP/MVVM架构方面的疑问所写, 旨在介绍iOS下MVC/MVP/MVVM三种架构的设计思路以及各自的优缺点. 全文约五千字, 预计花费阅读时间20 - 30分钟.MVCMVC的相关概念MVC最早存在于桌面程序中的, M是指业务数据, V是指用户界面, C则是控制器. 在具体的业务场景中, C作为M和V之间的连接,
2017-04-24 15:01:25
613
转载 避免滥用单例
单例是整个 Cocoa 中被广泛使用的核心设计模式之一。事实上,苹果开发者库把单例作为 "Cocoa 核心竞争力" 之一。作为一个iOS开发者,我们经常和单例打交道,比如 UIApplication 和 NSFileManager 等等。我们在开源项目、苹果示例代码和 StackOverflow 中见过了无数使用单例的例子。Xcode 甚至有一个默认的 "Dispatch Once" 代码片段
2017-04-21 19:05:06
1549
转载 NSString 与 Unicode
当你在处理文本时,如果你不是在写一些非常古老的代码(legacy code),那么你一定要使用 Unicode。幸运的是,苹果和 NeXT 一直致力于推动 Unicode 标准的建立,而 NeXT 在 1994 年推出的 Foundation Kit 则是所有编程语言中最先基于 Unicode 的标准库之一。但是,即使 NSString 完全支持 Unicode,还替你干了大部分的重活儿,处理各种语
2017-03-28 11:32:50
1777
原创 Reason : image not found
一、提出问题:在引入 mapbox.framework 这个第三方框架后,Xcode 的 控制台 打印出了如下错误:Reason : image not found二、解决办法:
2017-02-24 12:07:53
826
原创 自定义地图样式,各地图信息梳理。
一 、地图种类:百度地图、高德地图、谷歌地图、苹果地图、openstreetmap、mapbox这些地图都能 自定义地图 样式;二、 定义地图:1、百度地图:百度地图个性化说明 :http://lbsyun.baidu.com/index.php?title=iossdk/guide/custom百度地图编辑工具: http://lbsyun.baidu.c
2017-02-23 14:12:03
7572
转载 iOS10+Xcode8 + iOS8 -- Xcode8的assets问题导致运行iOS8崩溃的解决方案
iOS 10 出来了,项目需要适配,更新Xode8 后,项目运行iOS 8.4 真机时,出现莫名其妙崩溃的问题。在网上寻求解决方案时发现了这篇博文– @ian博客 Xcode8的assets问题导致运行iOS8崩溃的解决方案看完文章后,发现操作有点复杂。点开博文文献《Xcode 8 build crash on iOS 9.2 and below》!!!发现了这个 Update: If your
2016-12-07 11:15:36
1770
原创 The image set "" has an unassigned child.
The image set " " has an unassigned child.
2016-11-30 11:02:28
3771
转载 iOS-图文表并茂,手把手教你GCD
前言对初学者来说,GCD似乎是一道迈不过去的坎,很多人在同步、异步、串行、并行和死锁这几个名词的漩涡中渐渐放弃治疗。本文将使用图文表并茂的方式给大家形象地解释其中的原理和规律。线程、任务和队列的概念异步、同步 & 并行、串行的特点一条重要的准则一般来说,我们使用GCD的最大目的是在新的线程中同时执行多个任务,这意味着我们需要两项条
2016-11-02 13:40:18
625
原创 iOS 版本号
一、常识:1、version:Version, 通常说的版本号, 是应用向用户宣传说明时候用到的标识. 一般有2段或者3段式, 如:2.1,8.1.2Version 一般由产品部门确定, 完全迥异的更新需要改变主版本号, 比如QQ 4.0 的变化非常大, 主版本的变化会更加吸引用户的眼球,所以有的应用会频繁的更新主版本号, 比如 FireFox 20.0 . 两段式
2016-10-26 13:39:18
683
转载 app定位、地图、坐标系的那些坑
原文地址: http://www.jianshu.com/p/f8224779ca63开发App时会遇到各种坑,本文分享我们在iOS/Android系统中定位和地图中遇到的坑,以及携程App的解决方案。定位定位即获取用户当前经纬度,iOS平台都是通过系统SDK接口获取的,因此所有App获取定位及精度的能力是相同的,即使Google Maps、百度地图、高德地图这种专
2016-10-19 12:01:54
22278
原创 base64编码、解码
base64编码:// base64编码+ (NSString*) base64Encode:(NSData *)data{ static char base64EncodingTable[64] = { 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P',
2016-08-31 10:28:52
600
InstallWizardForVC2008/2010Express.js/InstallWizardForVC2008/2010.js
2014-09-11
MSVCR100各种版本的都有
2014-04-02
GetAdaptersInof获取本地连接网卡信息,排除无线网卡和虚拟网卡
2014-03-23
Network Programming for Microsoft Windows
2014-02-19
Everything_1.2.1.413b.zip
2013-11-09
Objective-C编程之道:IOS设计模式解析
2017-02-24
从C++到Objective-C
2015-04-12
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人