自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 keyWindow

详见:看完这篇就不会再被keyWindow坑了https://www.jianshu.com/p/b6964951a6be经本人测试: 只有 老版本的 UIAlertView 会创建新的 Window, 从而改变keyWindow, 而 UIActionSheet 跟 新版本的 UIAlertViewController 都不会创建新的 Window, 但是这篇文章的意义在于 帮助了解了, 以下2个 window的 不同: UIWindow *DelegatekeyW...

2020-07-17 17:39:13 464

转载 Runloop 原理

https://www.jianshu.com/p/de752066d0ad

2019-11-12 17:04:54 361

转载 IOS推送生成服务器需要的p12证书

本文主要介绍在使用ios APNS推送的时候如何生成服务器需要使用到的p12文件转载自:https://www.jianshu.com/p/5b0552f72b7f流程:1.生成CSR请求文件2.创建推送证书3.从苹果开发者平台下载cer文件4.安装证书秘钥5.导出p12文件6.将第3步的cer文件转换为pem格式的文件7.将第5步的p12文件转换...

2019-03-27 14:50:23 1872

原创 iOS runtime 完整消息转发 机制

上一篇我们测试了 备用者消息转发 机制, 也就是- (id)forwardingTargetForSelector:(SEL)aSelector如果我们这个函数返回 nil, 那么就会进入到完整消息转发机制,也就是- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector 函数。如果没有在这个函数提供处理,那么就...

2019-03-12 14:26:47 705

原创 iOS runtime 备用接收者 处理机制

上一篇我们测试了 消息处理中的:动态解析 机制, 这篇我们来测试下 备用者转发机制。 当 + (BOOL) resolveInstanceMethod:(SEL)sel 在动态解析的时候,返回 NO 的时候,会继续查找 备用者转发机制,也就是看有没有实现- (id)forwardingTargetForSelector:(SEL)aSelector 方法。如果有实现 这个方法...

2019-03-12 13:51:46 279

原创 swizzle 自定义控件的 backgroundColor 方法

在 UITableViewCell 中使用 LCDefaultAvatarView的时候,发现在UITableView的默认多选状态下,如果选中cell, 那么cell中包含的 Avatar 背景会不显示,后面发现原因是 UITableView 会在选中的时候,给cell的 children view都设置 默认的 backgroundColor, 所以想到了 替换 backgroundCol...

2019-03-06 11:12:15 349

原创 runtime 应用之- 拦截系统类方法

我们有时候需要拦截hook 下系统的方法,在系统方法被调用之前先调用我们的方法,然后再调用系统的方法,这样我们可以做些额外的事情,比如KVO 的实现也用到了类似的方法。下面我们实践下 ,我们重写 UIViewController 的 viewDidLoad 方法, 替换掉 系统的viewDidLoad 后,我们再调用系统的viewDidLoad的实现。主要用到的函数: method_exc...

2019-03-03 22:42:18 405

原创 objective-c 消息重定向 之 动态解析机制

我们在上篇文章中提到,要处理 obj 找不到 对应的 方法的时候,有3种方法可以处理,从而不让系统crash.这第一种方法就是 动态解析机制。主要函数为+ (BOOL) resolveInstanceMethod:(SEL)sel//IMP 函数, obj 表示 self, _cmd 表示当前方法void DogBark(id obj, SEL _cmd, id content)...

2019-02-28 23:56:34 368

原创 objective-c 中消息机制探究

Object_c 的方法调用是一个消息转发的过程, 而不是像c++ 是通过直接的函数指针的调用机制。比如:[obj onClick]类似于 执行下面的函数 objc_msgSend(obj, onClick)实际上是有几个步骤:1. 通过 obj 的 isa 指针找到对应 的 Class 信息。这个 class 信息其实 是一个 obj_class ...

2019-02-28 23:26:35 306

原创 runtime 为 category 添加成员变量的应用

在 Objective-C 中,我们可以为一个 第三方类,或者 Cocoa 原生类添加 Category的方式,来扩展 自己的行为。比如,我们可以给NSString 添加 自己的 方法,来实现自己的行为。比如 我们可以加上 NSString(Md5)的 CateGory , 来实现NSString 对 md5的 扩展。但是,我们经常会有需要添加一些 成员变量的情况,比如我想给NSStr...

2019-02-28 22:12:02 267

原创 Swift 类中 属性和func 的 class 和 static 关键字区别

  区别在于:  static  定义的属性和func 没办法被子类 override  class 定义的属性和func 可以被子类 override.

2019-02-25 10:56:09 913

转载 MAC下显示/隐藏 系统文件夹的方法

MAC下显示/隐藏 系统文件夹的方法    MAC中显示隐藏文件有很多种方法,最简单的是通过在Mac终端输入命令。 显示隐藏文件(注意空格和大小写): defaults write com.apple.finder AppleShowAllFiles -bool true 或 defaults write com.apple.finder AppleShowAllF

2017-05-09 17:38:18 6899

原创 VS2013 + Qt 提示 There's no Qt version assigned to this project for platform Win32

在VS2013 配置完 Qt后,启动项目弹出提示:           原因在于, 没有给项目也设置Qt。       项目右键菜单, 选择 “Qt Project Settings” ,会显示如图的框: 将最后一个 Version字段, 选择指定的Qt 版本即可。

2017-02-13 13:42:25 24041 1

原创 c++ 中怎么传递可变参数

可变参数不能直接传递,可以借用 va_list void Log(const char * szFormat, ...); const QString GetFormatStr(const char * szFormat, va_list args );void TVLogger::Log(const char * szFormat, ...){ va

2016-12-14 14:01:27 15307

转载 QThread 正确使用方法

A short historyLong long ago, subclass QThread and reimplement its run() function is the only recommended way of using QThread. This is rather intuitive and easy to used. But when SLOTS and Qt e

2016-09-27 20:51:49 4117 1

转载 VS2008 Tab跟空格切换设置

不同项目对Tab键的大小要求是不一样的,在vs2008和2010中设置好,可以方便编码。首先,先后按下两组快捷键Ctrl+R和Ctrl+W可以显示程序中的空格显示为圆点的样式,这样,在编码时,就可以知道Tab键是否为空格了。同样,再次按下上述快捷键可以取消该显示。将Tab键改为四个空格的方法:Tools->Options->Text Editor->C/C++->Tabs中

2016-07-27 09:54:11 2750

原创 VMware 虚拟机安装 ArchLinux 系统全过程记录

1. 创建VMware 虚拟机2. 选中  x86-64  启动3. fdisk /dev/sda     分成2个区,一个sda1, sda2  分别为10G, 40G      初始化 sda2为  ext4格式   mkfs.ext4  /dev/sda2   格式化 sda1为 swap    mkswap /dev/sda1   swa

2016-07-23 07:44:09 7405

转载 两棵二叉树的最低共同节点

转载自:http://zhedahht.blog.163.com/blog/static/25411174201081263815813/   题目:二叉树的结点定义如下:struct TreeNode{    int m_nvalue;    TreeNode* m_pLeft;    TreeNode* m_pRight;};

2016-06-10 09:35:46 1169

转载 链表复制算法的变体

转载自:http://zhedahht.blog.163.com/blog/static/254111742010819104710337/      题目:有一个复杂链表,其结点除了有一个m_pNext指针指向下一个结点外,还有一个m_pSibling指向链表中的任一结点或者NULL。其结点的C++定义如下:                struct ComplexNode

2016-06-10 08:46:20 1272

转载 判断一棵树是不是另外一棵树的子树

转载自:http://zhedahht.blog.163.com/blog/static/25411174201011445550396/   题目:二叉树的结点定义如下:struct TreeNode{        int m_nValue;        TreeNode* m_pLeft;        TreeNode* m_pRigh

2016-06-09 22:07:27 3733

转载 顺时针打印矩阵

转载自:http://zhedahht.blog.163.com/blog/static/254111742010111112236313/    题目:输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字。例如:如果输入如下矩阵:1              2              3              45              6  

2016-06-09 21:51:27 1100

转载 不用+、-、×、÷做加法

转载自:http://zhedahht.blog.163.com/blog/static/254111742011125100605/题目:写一个函数,求两个整数的之和,要求在函数体内不得使用+、-、×、÷。分析:这又是一道考察发散思维的很有意思的题目。当我们习以为常的东西被限制使用的时候,如何突破常规去思考,就是解决这个问题的关键所在。看到的这个题目,我的第一反应是傻

2016-06-09 21:23:39 1119

转载 O(n)时间的排序

转载自:http://zhedahht.blog.163.com/blog/static/25411174201131184017844/   题目:某公司有几万名员工,请完成一个时间复杂度为O(n)的算法对该公司员工的年龄作排序,可使用O(1)的辅助空间。分析:排序是面试时经常被提及的一类题目,我们也熟悉其中很多种算法,诸如插入排序、归并排序、冒泡排序,快速排序等等。这些排序

2016-06-09 15:20:57 1104

转载 利用全排列八皇后问题的一种解法

转载自: http://zhedahht.blog.163.com/blog/static/2541117420114331616329/    题目:在8×8的国际象棋上摆放八个皇后,使其不能相互攻击,即任意两个皇后不得处在同一行、同一列或者同一对角斜线上。下图中的每个黑色格子表示一个皇后,这就是一种符合条件的摆放方法。请求出总共有多少种摆法。 

2016-06-09 15:08:31 2862

转载 求字符串的排列

转载自:http://zhedahht.blog.163.com/blog/static/254111742007499363479/   题目:输入一个字符串,打印出该字符串中字符的所有排列。例如输入字符串abc,则输出由字符a、b、c所能排列出来的所有字符串abc、acb、bac、bca、cab和cba。分析:这是一道很好的考查对递归理解的编程题,因此在过去一年中频繁出现在各大公司

2016-06-08 22:30:00 957

转载 求字符串的所有组合

转载自: http://zhedahht.blog.163.com/blog/static/2541117420114172812217/    题目:输入一个字符串,输出该字符串中字符的所有组合。举个例子,如果输入abc,它的组合有a、b、c、ab、ac、bc、abc。分析:在本系列博客的第28题《字符串的排列》中,我们详细讨论了如何用递归的思路求字符串的排列。同样,本题

2016-06-08 22:14:40 1716

转载 求二叉树的高度

转载自:http://zhedahht.blog.163.com/blog/static/25411174200732975328975/   题目:输入一棵二元树的根结点,求该树的深度。从根结点到叶结点依次经过的结点(含根、叶结点)形成树的一条路径,最长路径的长度为树的深度。例如:输入二元树:                                  

2016-06-07 22:06:03 13020

转载 判断二叉树是不是平衡树

转载自:  http://zhedahht.blog.163.com/blog/static/25411174201142733927831/     题目:输入一棵二叉树的根结点,判断该树是不是平衡二叉树。如果某二叉树中任意结点的左右子树的深度相差不超过1,那么它就是一棵平衡二叉树。例如下图中的二叉树就是一棵平衡二叉树:在本系列博客的第27题,我们曾介绍过如何

2016-06-07 22:01:58 1198

转载 给你一个长度为N的链表。N很大,但你不知道N有多大。你的任务是从这N个元素中随机取出k个元素

给你一个长度为N的链表。N很大,但你不知道N有多大。你的任务是从这N个元素中随机取出k个元素。你只能遍历这个链表一次。你的算法必须保证取出的元素恰好有k个,且它们是完全随机的(出现概率均等)。 答案来自网络: 蓄水池抽样:先保存前k个元素, 从第k+1个元素开始, 以1/i (i=k+1, k+2,…,N) 的概率选中第i个元素,并随机替换掉一个已保存的记录,这样遍历一次得到k个元

2016-06-07 20:21:07 2067

转载 归并排序的实现

转载自:http://blog.csdn.net/morewindows/article/details/6678165   归并排序是建立在归并操作上的一种有效的排序算法。该算法是采用分治法(Divide and Conquer)的一个非常典型的应用。首先考虑下如何将将二个有序数列合并。这个非常简单,只要从比较二个数列的第一个数,谁小就先取谁,取了后就在对应数列中删除这个

2016-06-06 23:03:05 923

转载 快速排序的实现

转载自: http://blog.csdn.net/morewindows/article/details/6684558  快速排序由于排序效率在同为O(N*logN)的几种排序方法中效率较高,因此经常被采用,再加上快速排序思想----分治法也确实实用,因此很多软件公司的笔试面试,包括像腾讯,微软等知名IT公司都喜欢考这个,还有大大小的程序方面的考试如软考,考研中也常常出现快速排序的

2016-06-06 22:47:48 556

转载 合并两个有序链表,让结果ren仍然有序

转载自: http://www.cnblogs.com/heyonggang/p/3405179.html 题目:输入两个递增排序的链表,合并这两个链表并使新链表中的结点仍然是按照递增排序的。例如下图中的链表1和链表2,则合并之后的升序链表如链表3所示。 链表结点定义如下:struct ListNo

2016-06-06 21:52:27 1373

转载 找出数组中只出现一次的两个数字

转载自:http://blog.csdn.net/morewindows/article/details/8214003  首先来看题目要求:在一个数组中除两个数字只出现1次外,其它数字都出现了2次, 要求尽快找出这两个数字。    考虑下这个题目的简化版——数组中除一个数字只出现1次外,其它数字都成对出现,要求尽快找出这个数字。这个题目在之前的《位操作基础篇之位操作全

2016-06-05 21:20:26 597

转载 找到0-N数组中至少一个重复元素

转载自:http://blog.csdn.net/morewindows/article/details/8204460   最近在微博上看到一道有趣的GOOGLE面试题,见下图:文字版:一个大小为n的数组,里面的数都属于范围[0, n-1],有不确定的重复元素,找到至少一个重复元素,要求O(1)空间和O(n)时间。     这个题目要求

2016-06-05 20:34:11 912

转载 直接插入排序

转载自:http://blog.csdn.net/morewindows/article/details/6665714   直接插入排序(Insertion Sort)的基本思想是:每次将一个待排序的记录,按其关键字大小插入到前面已经排好序的子序列中的适当位置,直到全部记录插入完成为止。 设数组为a[0…n-1]。1.      初始时,a[0]自成1个有序区

2016-06-05 17:04:56 363

转载 冒泡排序算法的实现

本文转载自: http://blog.csdn.net/morewindows/article/details/6657829 冒泡排序是非常容易理解和实现,,以从小到大排序举例:设数组长度为N。1.比较相邻的前后二个数据,如果前面数据大于后面的数据,就将二个数据交换。2.这样对数组的第0个数据到N-1个数据进行一次遍历后,最大的一个数据就“沉”到数组第N-1个位置。3

2016-06-05 15:51:13 433

转载 位操作总结

位操作总结     本文转载自: http://blog.csdn.net/morewindows/article/details/7354571     谢谢原作者提供的学习机会。     位操作篇共分为基础篇和提高篇,基础篇主要对位操作进行全面总结,帮助大家梳理知识。提高篇则针对各大IT公司如微软、腾讯、百度、360等公司的笔试面试题作详细的解答,使大家能熟练应对在

2016-06-05 09:55:58 483

转载 筛素数法(改进版)

改进的筛素数法   本文转载自:http://blog.csdn.net/morewindows/article/details/7347459        非常感谢作者提供的学习机会,这里只是copy过来方便自己学习。                最简单的筛素数法方法就是从2开始,将所以2的倍数去掉,然后从3开始,将3的倍数去掉。根据这样很容易写出代码,下面代码就是是

2016-06-05 09:40:18 960

原创 Qml TabView 如何动态创建Tab

TabView { id: pd_top_tabView anchors.left: parent.left anchors.right: parent.right anchors.top: parent.top anchors.topMargin: 10

2016-03-26 09:55:58 7104

原创 UITableView 如何不动态计算返回的cell 的高度

UITableView cell 高度计算。

2016-03-26 09:30:51 1345

空空如也

空空如也

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

TA关注的人

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