自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 vuez 与 Vue3 响应式比较

通过 Proxy(代理):拦截对data 任意属性的任意(13种)操作,包括属性值的读写、属性的添加、属性的删除等。对象:通过 defineProperty 对对象的已有属性值的读取和修改进行劫持(监视/拦被)。通过 Reflect(反射):动态地对被代理对象的相应属性进行特定的操作。数组:通过重写数组、更新数组等一系列更新元素的方法来实现元素修改的劫持。

2023-09-07 09:31:55 668

原创 reactive 与 ref 的区别

ref 用来处理基本类型数据,Feactive 用米处理对象(递归深度响应式)。如果用ref 对象/数组,内部会自动将对象/数组转换为 Feactive 的代理对象。ref 内部通过给 valde 属性添加 @ptct/aoter 来实现对数据的劫持。Feactive 内部通过使用Proxy来实现对对象内部所有數据的劫特,并通过Reflect操作对象内部数据。ref 的数据操作:在Js 用要.value,在模板中不需要(內部解杯機板时会自动添加.value)

2023-09-07 09:30:47 114

原创 v-model和v-bind

当我们修改第一个文本框中的内容时,第二个文本框中的内容也会随之改变,而当手改第二个文本框的内容时,第一个文本框中的内容并不会随之改变。因为第一个文本相的是v-mode 双向数据绑定,而第二个文本框使用的是v-bind 单向数据绑定。v-model,它其实就是一个语法糖,作用就是双向绑定表单控件(radio, text,address,email,select,checkbox,textarea)--双向绑定 v-model它实际上是下面这种写法的简写 -->--双向绑定 -->--单向绑定 -->

2023-09-05 08:49:20 498

原创 Python学习笔记------带返回值的装饰器(二)

# 全局变量user_dic={'userName':None, 'login':False}# user_NameandPass=[# {'userName':'alex', 'password':'123'},# {'userName':'alex1', 'password':'1234'},# {'userName':'alex2', 'password'...

2018-08-10 15:16:56 614

原创 iOS 图片引起的崩溃

项目在真机和模拟器上面没有问题,上线后在ios8和ios9系统上面会闪退,并且日志也捕获不到异常,查阅资料以后显示图片的问题。解决方案:1.在.ipa文件中找到Assets.car拷贝到桌面2.终端运行命令 :sudo xcrun --sdk iphoneos assetutil --info /Users/sengege/Desktop/Assets.car > /Users/...

2018-08-08 14:35:13 702

原创 Python学习笔记------带返回值的装饰器

 import timedef timer(func): def warper(*args, **kwargs): #args:位置参数 [] kwargs:关键字参数 {} (*args, **kwargs)统称为可变长参数 start_time = time.time() res = func(*args, **kwargs) ...

2018-08-07 20:05:54 963

原创 python学习笔记------返回值的装饰器

 import timedef timer(func): def warper(): start_time = time.time() res = func() end_time = time.time() print('函数的运行时间=========%s' %(end_time - start_time))...

2018-08-07 17:07:00 540

原创 Python学习笔记------高阶函数以及不带返回值的装饰器

# 高阶函数# 函数的参数是一个函数# 函数的返回值是一个函数# 函数作为参数# import time# def foo(l):# for i in l:# print('詹姆斯,你好啊=======%s', i)### def test(func):# start_time = time.time()# func# ...

2018-08-07 17:06:22 236

原创 python学习笔记------装饰器

 # 装饰器 本质就是函数,为其他函数添加附加功能# 原则# 不修改被修饰函数的源代码# 不修改被修饰函数的调用方式# 装饰器 = 高阶函数 + 函数嵌套 + 闭包import timedef test(l): start_time = time.time() res = 0 for i in l: res += i ...

2018-08-07 10:05:13 121

原创 Python学习笔记------生产消费者模式

 # 触发生成器函数的几种方法 .__next__() next() .send(None)# yield 1 相当于return,控制的是函数的返回值# x = yield 的另一个特性,接受send传过来的值,赋值给xdef test(): print('开始啦=============') send = yield print('第一次========...

2018-08-06 17:22:15 104

原创 python学习笔记------迭代器和生成器(二)

# 对象必须提供一个next方法,执行该方法要么返回迭代中的下一项,要么就引起一个异常以终止迭代(只能后退不能前进)# x = 'hello'# # 遵循迭代器协议,把字符串转化为可迭代对象# iter_test = x.__iter__()## print(iter_test.__next__())# print(iter_test.__next__())# print(iter...

2018-08-06 17:21:36 130

原创 Python学习笔记------迭代器和生成器

# 对象必须提供一个next方法,执行该方法要么返回迭代中的下一项,要么就引起一个异常以终止迭代(只能后退不能前进)# x = 'hello'# # 遵循迭代器协议,把字符串转化为可迭代对象# iter_test = x.__iter__()## print(iter_test.__next__())# print(iter_test.__next__())# print(iter...

2018-08-02 15:49:28 179

原创 Python学习笔记------文件写操作

# w 文件写操作,如果文件存在,会把文件的内容清空,再继续下面的操作。文件不存在,首先会新建一个文件f = open('写笑话文件', 'w')f.write('第一行11111111111\n')f.write('第二行22222222222\n')f.write('第三行33333333333\n')f.writelines(['第四行4444444444\n', '第五行555...

2018-08-01 09:48:35 161

原创 Python学习笔记------文件读操作

# windows 这样写 open('笑话',encoding='utf-8')# 文件打开模式: 只读r 只写w(默认为只读模式)# 1.打开一个文件,等到文件句柄并且赋值给一个变量 2.通过句柄对文件进行操作 3.关闭文件# file = open('笑话')# print(file.read())# file.close()file1 = open('笑话')# 每次文件读...

2018-07-18 15:02:34 179

原创 Python学习笔记------内置函数

# # 打印ASCII 码为97代表的字符# print(chr(97))# # 打印字符对应的ASCII码# print(ord('a'))# # 相当于 2**3# print(pow(2, 3))# round函数:四舍五入# print(round(2.3))# l = 'hello'# # slic 提前定义切片,第三个参数代表步长# s1 = slice(1,...

2018-07-17 16:50:41 125

原创 Python学习笔记------max和min函数

  dict1 = {'age1': 10, 'age3': 20, 'age4': 16, 'ag2': 19}# print(max(dict1.values()))# # zip函数就是一一对应构建对象# print(list(zip(dict1.values(), dict1.keys())))# 只要是可迭代对象,max函数就可以使用# print(list(max(zi...

2018-07-17 11:25:11 296

原创 Python学习笔记------map和filter函数

# **************************************map函数**************************************"""# map函数,用来处理'序列'(可迭代的对象)中的每个元素,得到的结果是可迭代的对象,该对象元素位置与个数与原来一样num_l=[1,2,10,5,3,7]#lambda x:x-1def reduce_one...

2018-07-16 22:14:36 224

原创 Python学习笔记------隐式函数与高阶函数

# lambda关键字 x:形参 x+10:返回值fun = lambda x: x + 10print(fun(10))name = 'awqa'def change_name(x): return x + '_sb'print(change_name('zst'))def foo(n): print(n)def bar(name): ...

2018-07-16 17:03:38 2192

原创 Python学习笔记------函数的作用域

def foo(): name = 'lhf' def bar(): name = 'wupeiqi' print(name) def tt(): print(name) return tt return barprint('返回bar的内存地址=======', foo...

2018-07-16 11:20:38 129

原创 Python学习笔记------函数递归的特征

# ***********************************函数递归的特征***********************************# 1.必须有一个明确的结束条件# 递归的效率并不是很高list = ['a', 'b', 'c', 'd']def methon(list): if len(list) == 0: return '根本没...

2018-07-14 17:23:09 560

原创 Python学习笔记------函数

# 函数就是有返回值的一个过程def method1(x): ''' 第一个函数测试 :param x: 入参 :return: 返回值 ''' x = 2 * x + 1 return x# 打印函数的返回值print(method1(3))# 打印函数的内存地址print(method1)...

2018-07-13 16:17:56 129

原创 iOS 创建推送证书,无法选择appid

2018-07-13 11:16:31 442

原创 Python学习笔记------集合常见的方法(二)

# **********************************集合常用的方法*********************************# 由不同的 无序 不可变元素(字符串 数字 元组)组成"""s = {1, 2, 'age', 4, 'iphone', ('alex', 'age', 'name')}for item in s: print(item)...

2018-07-12 17:27:42 125

原创 Python学习笔记------集合常见的方法(一)

# **********************************集合常用的方法*********************************# 由不同的 无序 不可变元素(字符串 数字 元组)组成"""s = {1, 2, 'age', 4, 'iphone', ('alex', 'age', 'name')}for item in s: print(item)...

2018-07-11 17:45:56 154

原创 Python学习笔记------集合常见的方法

# **********************************集合常用的方法*********************************# 由不同的 无序 不可变元素(字符串 数字 元组)组成"""s = {1, 2, 'age', 4, 'iphone', ('alex', 'age', 'name')}for item in s: print(item)...

2018-07-11 17:45:26 114

原创 Python学习笔记------字典常见的方法集合

# **********************************字典*********************************# 字典是无序的# 字典的value可以是人意类型的值, 列表 字典不可以作为字典的key, 若前面有key==1布尔值(True) 或者 key == 0布尔值(False),在字典中不会显示,若没有则可以显示# 为什么列表不可以当作字典的key,...

2018-07-11 11:27:31 194

原创 Python学习笔记------元组常见的方法集合

 # **********************************元组**********************************# 元组就是对列表的二次加工,元素的一级元素整体不可被修改,并且不可以被增加和删除(只可以查)# 一般写元组的时候,最好在最后添加一个逗号 ,# tu = (1, 2, (3, 4), [(11, 22), 33], 'age', 'n...

2018-07-10 17:55:36 185

原创 Python学习笔记------列表常见的方法集合

# **********************************列表**********************************# 列表是有序的,创建以后可以被修改,字符串一旦创建成功不可被修改。原因就是,字符串在内存中是连续存储的,列表中的某一个元素,既包含当前的内容也包含下一个元素的地址# li = [1, 2, 3, 4, ['sen', [10, 19, 21], '...

2018-07-10 16:26:50 117

原创 Python学习笔记------字符串常见的方法集合

  # ***********************************************字符串常见的方法集合***************************************************# 首字母大写# a = 'aLex'# v = a.capitalize()# 把大写字母转化成小写字母,包含特殊字符a = 'aLex'v ...

2018-07-06 14:47:46 168

原创 iOS解析json中null终极解决方案

只需要在base64转码的时候,添加代码    static func base64stringtostring(_ string: NSString ) -> NSString {        let data = Data.init(base64Encoded: string as String, options: Data.Base64DecodingOptions(rawValue...

2018-05-16 13:58:33 477

原创 JSPatch 怎样生成私钥和公钥

打开命令行工具,然后输入 openssl打开openssl,接着只要三句命令就可以搞定。1.输入 openssl打开openssl2.OpenSSL后运行> genrsa -out rsa_private_key.pem 1024 3.3.终端输入:pkcs8 -topk8 -inform PEM -in rsa_private_key.pem -outform

2017-10-25 13:51:52 460

原创 ios 热更新可行性分析

Ios热更新预言报告热更新简述热更新是一种各大手游等众多App常用的更新方式。简单来说,就是在用户通过App Store下载App之后,打开App时遇到的即时更新。2017年3月,苹果就曾警告部分开发者违反了《苹果开发者计划许可协议》的3.3.2章节以及《App Store审查指南》2.5.2章节的规定,要求开发者删除热更新相关代码,并重新提交一个新的App版本以供审核。2

2017-10-24 14:07:38 892

原创 iOS GCD 同步异步的区别 Swift 代码的简单实现

新建一个工程引入头文件import Dispatchimageview.contentMode =UIViewContentMode.scaleAspectFit        self.view.addSubview(imageview)        let url ="http://f.hiphotos.baidu.com/imag

2017-10-20 16:42:26 333

原创 iOS 多线程的四种技术方案 Swift

Swift 3把冗长的GCD API进行了精简和优化,所以很多时候,我们都可以使用GCD来进行多线程开发。Dispatch会自动的根据CPU的使用情况,创建线程来执行任务,并且自动的运行到多核上,提高程序的运行效率。对于开发者来说,在GCD层面是没有线程的概念的,只有队列(queue)。任务都是以block的方式提交到对列上,然后GCD会自动的创建线程池去执行这些任务。在对于S

2017-10-20 10:32:27 1137

原创 iOS 多线程的四种技术方案 OC

本文着种介绍最后两种方案GCD 是如何实现多线程的GCD 实现多线程GCD 简介GCD 全称是Grand Central Dispatch,可译为“超级厉害的中枢调度器”,GCD 是苹果公司为多核的并行运算提出的解决方案, GCD会自动利用更多的 CPU 内核(比如双核、四核)来开启线程执行任务,GCD 会自动管理线程的生命周期(创建线程、调度任务、销毁线程),不需要我

2017-10-20 09:26:15 227

原创 iOS 11获取设备名称 Swift 超简单

func getDeviceVersion () -> String? {        let name =UnsafeMutablePointerutsname>.allocate(capacity:1)        uname(name)        let machine = withUnsafePointer(to: &name.pointee

2017-10-19 17:13:06 644

原创 适配iOS 11及iPhoneX iOS 11下tableView内容下移的问题

一.为什么会发生内容下移1.原因分析在iOS 11中Apple干掉了ViewController中的automaticallyAdjustsScrollViewInsets这个属性,当tableview的frame超出了安全区域后系统会自动的调整SafeAreaInsets的值,而iOS 11中真正影响tableview内容与边缘的变成了adjustedContentInset而不

2017-10-19 14:12:31 4251 1

原创 IOS 怎样有效减少ipa的大小

作为一个ios开发人员,免不了处理ipa包过大耗费用户流量的问题,下面就是我自己的一些经验,简单有效,欢迎大家指正批评1.配置编译选项  (Levels选项内)Genetate Debug Symbols  设置为NO2.舍弃架构armv7,因为armv7用于支持4s和3gs,4s是2011年11月正式上线,虽然还有小部分人在使用,但是追求包体大小的完全可以舍弃了。3.其他

2017-10-18 17:06:51 1149

空空如也

空空如也

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

TA关注的人

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