自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

原创 [Swift 开发] &&和||运算符优先级

print(true || false && false)print((true || false) && false)print(true || (false && false))第一行:看不出谁的运算级谁高第二行:把||用括号括起来,增强或优先级第三行:把&&用括号括起来,增强与优先级根据第二行和第三行的输出结果判定&&和||运算符优先级打印结果:truefalsetrue可以看..

2020-08-07 16:21:52 8

原创 [Swift 开发] 读取和修改二进制某一位的数据

let initialBits: UInt8 = 0b00001111//修改成什么值let on_off = 0//修改第几位数据var location = 11.读取数据var result = initialBits >> location & 1// 转化为字符串var stringOfInvertedBits = String(result, radix: 2)print(stringOfInvertedBits)2.修改某一位的数据v.

2020-07-01 16:15:22 42

原创 [SQLite 开发] 移除掉一个字串中的字头或字尾空格(TRIM)

SQLite 的TRIM用于移除掉一个字串中的字头或字尾空格。语法带有 TRIM的 SELECT 语句的基本语法如下:SELECT Trim(Value) FROM settingTRIM (字符串,要移除的字符) 如果要移除的字符不写,默认是空格LTRIM 字符串开头部分移除RTRIM 字符串结尾部分移除实例例1SELECT Trim(' 北京 ')结果'北京'例2SELECT LTrim(' 北京 ')结果'北京.

2020-06-04 17:49:48 74

原创 [Swift 开发]Xcode多行文本输入和编辑

例如有这么一个类,要实现NSCopying协议class ClassA: NSCopying { required init() { } var moneys : String! var modify_money : String! var cost_name : String! var house_id : String! var memo : Str

2020-05-21 15:12:23 66

原创 [Swift 开发] Message from debugger: Terminated due to signal 9

Xcode Crash报错提示Message from debugger: Terminated due to signal 9原因:1 内存使用过高2 CPU使用过高当内存或者CPU使用过高时,系统会杀死进程

2020-04-12 09:18:01 750

原创 [Swift 开发] Bluetooth 蓝牙连接状态

判断蓝牙连接状态我们可以使用CBCentralManagerDelegate- (void)centralManagerDidUpdateState:(CBCentralManager *)central;Bluetooth连接状态的枚举值public enum CBManagerState : Int { case unknown // 蓝牙状态未知...

2020-01-20 16:51:01 265

转载 [Swift 开发] 时间差,耗时

let startTime = CFAbsoluteTimeGetCurrent() //要执行的代码 //... let endTime = CFAbsoluteTimeGetCurrent() debugPrint("代码执行时长:%f 毫秒", (endTime - startTime)*1000)...

2019-12-18 15:15:54 43

原创 [Swift 开发] 遍历二叉树(前序、中序、后序、层序)

创建二叉树模型//用的是递归枚举的方式indirect enum BinaryTree { case node(_ l:BinaryTree, _ v:String, _ r:BinaryTree) case empty}初始化数据let nodeI = BinaryTree.node(.empty, "I", .empty)let nodeG = Binar...

2019-12-18 10:43:18 118

原创 [Swift 开发] sort非稳定排序

sort排序,如果两个对象的值相等,排序就会出现问题。上个例子给大家看看。老规矩先创建个person类class Person { var name = "" var id = 0 init(i:Int,n:String) { name = n id = i }}初始化对象数组,数组中的id都相同,设置为1v...

2019-11-19 14:53:25 36

转载 [SQLite 开发] Limit 子句(TOP)

SQlite本身没有top功能,无法向TSQL一样下Select top 100 * from tb_table,但SQLite提供了一个Limit关键字用来取得相应行数的资料SQLite 的 LIMIT 子句用于限制由 SELECT 语句返回的数据数量。语法带有 LIMIT 子句的 SELECT 语句的基本语法如下:SELECT column1, column2, colum...

2019-10-28 13:43:10 48

原创 [Swift 开发] viewDidLoad()什么时候被调用

class classA:UIViewController{ var name :String? override func viewDidLoad() { print("viewDidLoad()") }}创建一个UIViewController的classA,override func viewDidLoad()什么时候会被调用。首先被...

2019-08-06 09:30:27 401

原创 [Swift 开发] 柯里化 (Currying) 应用场景

柯里化的代码,看起来更加的简洁优雅,提高代码复用性。例如我们要用班级和姓名来拼接一个字符串。func conventionFunc(_ calssName: String,name:String) -> String { return "\(calssName) (\(name))"}let aa = conventionFunc("大班", name: ...

2019-07-22 10:17:07 48

原创 [Swift 开发] 获取子网掩码

func getIfaNetmask() -> String { var ifaNetmask = "" // Get list of all interfaces on the local machine: var ifaddr : UnsafeMutablePointer<ifaddrs>? = nil ...

2019-06-20 11:21:21 132

转载 [IOS 开发] synchronized与Lock的区别

两者区别:1.首先synchronized是java内置关键字,在jvm层面,Lock是个java类;2.synchronized无法判断是否获取锁的状态,Lock可以判断是否获取到锁;3.synchronized会自动释放锁(a线程执行完同步代码会释放锁 ;b 线程执行过程中发生异常会释放锁),Lock需在finally中手工释放锁(unlock()方法释放锁),否则容易造成线程死...

2019-06-13 18:30:02 199

原创 [C/C++ 开发] 虚函数和纯虚函数的区别

虚函数是在基类中被声明为virtual,并在派生类中重新定义的成员函数,可实现成员函数的动态重载 纯虚函数只是在基类中不需要写函数实现 class A {public: A(); virtual ~A(); void f1(); virtual void f2(); virtual void f3()=0;}; class ...

2019-05-29 09:32:40 47

原创 [IOS 开发] 通过vim把OC代码转成C++底层代码

#include<stdio.h>int main() {int a = 18 % 3;}先在终端中输入vim aa.c回车进入vim编辑器,再按一下a键,进入编辑状态,然后输入如下C语言语句:#include<stdio.h>int main() {int a = 18 % 3;}到此,按esc键退出编辑状态, 输入:wq按回车,...

2019-03-26 10:35:55 79

原创 二进制加法原理

14 + 7 = 21计算机加法原理是什么呢?先把10进制的数转换成二进制14 = 1110、 7 = 0111第一步:先计算不需要进位的值,做位或计算。结果是1001第二步:计算需要进位的值,做位与计算。得到110,需要进位,向左移移位就可以达到进位的目的。110 << 1 = 1100结果是1100.第三步:把俩值相加,看有...

2019-03-25 12:05:25 1703

原创 常见的HTTP错误状态码

200:正确的请求返回正确的结果,如果不想细分正确的请求结果都可以直接返回200。201:表示资源被正确的创建。比如说,我们 POST 用户名、密码正确创建了一个用户就可以返回 201。202:请求是正确的,但是结果正在处理中,这时候客户端可以通过轮询等机制继续请求。203:请求的代理服务器修改了源服务器返回的 200 中的内容,我们通过代理服务器向服务器 A 请求用户信息,服务器 A...

2019-02-15 10:08:14 348

原创 [Swift 开发] 银行取款排队模拟

银行取款排队模拟 假设银行有4个柜台,假设某天有200位客户来办理业务,每个客户到达银行的时间和业务处理时间分别用两个数组arrive_time 和 process_time 来描述。 请写程序计算所有客户的平均等待时间,假设每个客户在去到营业部之后先拿号排队,然后在任意一个柜台有空闲的时候,号码数最小的客户上去办理,假设所有的客户拿到号码之后不会因为银行众所周知的慢而失去耐心走掉。 首...

2019-01-30 15:33:32 126

原创 iOS面试宝

有的朋友问开发技能提升遇到瓶颈,怎么提升?有的朋友面试,面试官问的问题自己都没有接触过。有的朋友想扩展自己的知识面,想研究一下技术。……为了帮助想学习进步的同学,所以有了这个app如果同学要去面试,可以先看看这里的面试题,一般面试官问题和参考答案都会在这里。 所有的文章都来自互联网,我把常见的面试题都整理了出来,随后会更新更多的题进来。文章的作者我尽量出处列明,有些题实在找不到出处,...

2019-01-25 00:02:41 99

原创 [IOS 开发] NSString内存管理,NSString放在内存的什么区域

测试代码:NSString *str1 = [NSString stringWithFormat:@"小强"];NSString *str2 = [NSString stringWithFormat:@"1"];NSString *str3 = [NSString stringWithFormat:@"a"];NSString *str4 = @"123456789";上面这段代...

2019-01-09 15:25:57 1223

原创 [Swift 开发] NSMutableDictionary() 内存溢出 (33554432 、 2^24、innodb_additional_mem_pool_size )

我们在使用NSMutableDictionary时候,有大量的数据要操作。 假设千万级别的。咱们做一个小Demo let dic = NSMutableDictionary() for i in 1...2<<24{ dic["\(i)"] = "\(i)" if dic.count != i...

2019-01-02 17:13:56 160

原创 [Swift 开发] 数组 环形缓存区

经过测试发现Swift数组并不是环形缓存区。 var aa = [0]Duration.startMeasurement("Tough Math1")for i in 0...100000{ aa.append(i)}Duration.stopMeasurement()输出:Tough Math1 took: 1.44msvar aa = [0]Du...

2018-12-25 15:36:47 106

原创 [HTML 开发] 一行左右两端对齐文本数据

需求:俩字符串,想在一行显示。一个左对齐,另一个右对齐。如图所示实现代码:<div><div style="float:left">北京市</div><div style="float:right">朝阳区</div></div> <div style=&qu

2018-12-01 15:02:31 2008

转载 [IOS 开发] UIImage类的对象两种初始化方法的区别

1、imageNamed:1 UIImage *image = [UIImage imageNamed:@"1"];UIImage的类方法  第一次读取图片的时候,先把这个图片放到缓存中,下次再使用这个名字的图片时,直接从缓存中读取;如果缓存中不存在这个名字的图像,则先把该图片加载到缓存中,再返回该对象。如果我们需要短时间内频繁的加载一些一次性的图像,最好不要使用这种方法。  优...

2018-11-20 13:50:57 120

原创 [IOS 开发] RunLoop的生命周期

RunLoop的生命周期kCFRunLoopEntry -- 进入runloop循环 kCFRunLoopBeforeTimers -- 处理定时调用前回调 kCFRunLoopBeforeSources -- 处理input sources的事件 kCFRunLoopBeforeWaiting -- runloop睡眠前调用 kCFRunLoopAfterWaiting -- run...

2018-11-19 16:41:27 299

原创 [IOS 开发] 对象方法内存是如何分配的

 在程序编译时,系统会首先检测出程序中用到的所有的类型,CLR会在内中分配一块内存来保存Class中使用到的每一个方法(不是方法的实现),存放的是一个地址。当开始调用其中的某一个方法时,根据这个地址可以在CLR分配的用于保存方法的内存中找到我们想要调用的方法,然后动态的编译。我们可以看到一个关键点,对象方法在对象创建之前就已久被分配了内存空间。所以对象方法的内存分配和管理和对象是没关系的。...

2018-09-07 17:19:30 530

转载 [IOS 开发] weak内部原理

weak表其实是一个hash(哈希)表,Key是所指对象的地址,Value是weak指针的地址数组。weak 的实现原理可以概括一下三步:1、初始化时:runtime会调用objc_initWeak函数,初始化一个新的weak指针指向对象的地址。2、添加引用时:objc_initWeak函数会调用 objc_storeWeak() 函数, objc_storeWeak() 的作用是更新指针指...

2018-09-07 10:52:12 180

原创 [Kotlin 开发] 简单动画和动画监听

透明动画fun startAlpha(view: View){ val alphaAnimator = ObjectAnimator.ofFloat(view,"alpha", 1f,0f,1f) alphaAnimator.duration = 1000 alphaAnimator.start() } 旋转动画fun startRotate(view...

2018-08-13 14:31:02 830

转载 [Kotlin 开发] 内存管理机制

当我们使用内存的时候,遵循先向操作系统申请一块内存,使用内存,使用完毕之后释放内存归还给操作系统。常见的垃圾回收算法有引用计数法(Reference Counting)、标注并清理(Mark and Sweep GC)、拷贝(Copying GC)和逐代回收(Generational GC)等算法,其中Android系统采用的是标注并删除和拷贝GC。本文介绍的是Kotlin内存管理机制,重点介绍M...

2018-05-30 10:57:15 1336 1

转载 [IOS 开发] OC类之间的继承关系

此图可以更好的让你去理解iOS中一些底层的关系. 由它们的底层关系,就能更加容易让我们理解和区别它们之间的关系了!

2018-01-02 14:21:58 349

转载 [IOS 开发] 内存管理的几大区域

介绍下内存的几大区域1.栈区(stack) 由编译器自动分配并释放,存放函数的参数值,局部变量等。栈是系统数据结构,对应线程/进程是唯一的。优点是快速高效,缺点时有限制,数据不灵活。[先进后出]2.堆区(heap) 由程序员分配和释放,如果程序员不释放,程序结束时,可能会由操作系统回收 ,比如在ios 中 alloc 都是存放在堆中。3.全局区(静态区) (static) 全局变量

2017-12-19 16:03:35 1145

转载 [Swift 开发] iOS 颜色值#ffffff转UIColor

写代码颜色值的时候会用到#ffffff 这样的格式,UIColor不能直接识别,我们要转换一下。在SwiftTheme中看到了这个功能,在这里分享一下。public enum UIColorInputError : Error { case missingHashMarkAsPrefix, unableToScanHexValue, mismatchedHexStr

2017-11-03 15:44:56 448

转载 [IOS 开发] Facebook开源动画库 POP-POPBasicAnimation运用

POP: 一个流行的可扩展的动画引擎iOS,它支持spring和衰变动态动画,使其可用于构建现实,基于物理交互。Objective - C API允许快速集成, 对于所有的动画和过渡他是成熟的.POP默认支持三种动画 但同时也支持自定义动画POPBasicAnimation //基本动画POPSpringAnimation //类似弹簧一般的动画效果POPDecayAnim

2017-10-30 15:24:47 426

转载 [Swift 开发] GCD常用方法

GCD常用的用法子线程DispatchQueue.global().async { print("开一条全局队列异步执行任务") } 主线程DispatchQueue.main.async { print("在主队列执行任务") } waitvar myQueue = Dispat

2017-09-25 17:24:18 485

原创 [IOS 开发] 多线程之 NSBlockOperation和NSInvocationOperation的区别

本篇文章主要介绍下多线程下NSBlockOperation和NSInvocationOperation的区别,列举个栗子给大家说明一下。1.首先介绍NSBlockOperation:NSBlockOperation *op = [NSBlockOperation blockOperationWithBlock:^{ NSLog(@"BlockOperation 1

2017-07-05 15:01:55 443

原创 [Swift 开发] 深拷贝一个UILabel

深拷贝一个UILabel原理还是用到runtime的反射机制和NSCopying协议.extension UILabel:NSCopying{ public func copy(with zone: NSZone? = nil) -> Any { let label = UILabel() var outCoun

2017-06-06 15:35:48 894

转载 开发命名规则

命名规则:模块_类别_功能_状态例如:导航_按钮_搜索_默认      nav_button_search_default按钮状态【选中】:selected按钮状态【无法点击】:disabled按钮状态【点击时】:highlight按钮状态【默认】:default按钮状态【一般】:normal按钮状态【按下】:pressed收藏:co

2017-06-01 13:23:25 235

转载 Swift enumerate函数

本文的Swift语言版本,1.2先看看问题把这两个数组合成一个字典score = [1,2,3,4,5,6,7,8,9]dates =["7/12/15","7/12/15","7/12/15","7/12/15","7/13/15","7/13/15","7/13/15","7/13/15"," 7/14/15"]1212期望的合成后结果var scoreDates

2017-02-15 09:46:10 730

原创 [Swift 开发] 查看Xcode编译时间

首先要到Build Settings设置Other Swift Flags-Xfrontend -debug-time-function-bodies在show the report navigator中就可以看到编译时间。如果想把日志以文件的形式输出或者排序,可以使用命令行来实现Terminal 到工程文件夹下xcodebuild -workspace

2016-11-15 15:25:12 1282

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