自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

小羊羊

Better memory than record

  • 博客(40)
  • 收藏
  • 关注

原创 微幼趣园所端技术支持

微幼趣园所端技术支持技术邮箱:[email protected]隐私政策网址:https://www.privacypolicies.com/live/5df25940-094f-4909-b025-2129a04b1094

2023-06-03 01:53:09 78

原创 OC桥接Swift学习记录

OC调用swift: 1.在OC类,引用#import "weoil-Swift.h" 2.swift类的 变量 方法 前面要加上 @objcswift调用OC: 1.weoil-Bridging-Header 这个头文件是用来放swift要用到OC所用到的类 2.swift可以继承OC类 3.oc的方法在swift里面调用,可以换方法名:例子如下 -(void)eat NS_SWIFT_NAME(myE

2022-07-05 15:59:45 940

原创 iOS 3DTouch的小细节

在App启动后,添加3DTouch的快捷入口,代码如下:NSMutableArray *arrShortcutItem = (NSMutableArray *)[UIApplication sharedApplication].shortcutItems;NSArray *typeArr = @[@"com.zhang.xxx.addOil",@"com.zhang.xxx.daijia",@"com.zhang.xxx.huafei"];UIApplicationShortcutItem *s

2022-02-23 10:26:58 1404

原创 three.js入门

要准备开始做3D展示的H5,所以准备在下班后和周末开始提前练习,学习。做一个3d h5,直接从webGL开始,不太现实,于是准备先练习使用框架,在three.js和Babylon纠结了一下后,考虑到:本人新手,three年代久远,社区活跃,于是选择了three。three中文社区:http://www.webgl3d.cn 在上面可以按步骤下载源码,和环境安装,本人家里用的windows,所以直接iis本地服务。three搭建界面基本元素,套路如下:1.创建一个场景(scene)场...

2020-08-09 19:17:44 170

原创 Clone Github失败的解决全过程

今天在Github上新建了一个项目,用来写demo,pod install 的时候一直失败,情况如下:Failed to connect to github.com port 443: Timed out 结果:显示为github链接超时 总体解决思路如下:先去终端ping一下github,是否为真的超时?如果真的超时,就去修改替换github ip,如果不是再去考虑git的配置问题。 打开终端,尝试命令:ping github.com 情况如下:Requ...

2020-08-06 11:15:12 8812 1

原创 汇编学习之基础指令

最近要借助一个facebook第三方框架,实现一些功能,必须要看看懂汇编,并使用汇编,于是开始学习汇编。汇编是怎么样的语言,来历背景,可参考:http://www.ruanyifeng.com/blog/2018/01/assembly-language-primer.html下面直接开始记录一些汇编的指令:push:将运算子放入stackcall:调用函数mov:将一个值写入某个寄存器add:将两个运算子相加,并将结果写入第一个运算子pop:取出stack最近一个写入的值(即最

2020-07-31 17:47:14 140

原创 算法(公式法):判断是否完全平方数

/**给定一个正整数 num,编写一个函数,如果 num 是一个完全平方数,则返回 True,否则返回 False。说明:不要使用任何内置的库函数,如 sqrt。示例 1:输入:16输出:True示例 2:输入:14输出:False*/// 利用公式法:1 + 3 + 5 + 7 + 9 + ... +(2n-1)...

2019-08-06 11:37:17 1950

原创 算法(栈):判断字符串是否有效

/**给定一个只包括 '(',')','{','}','[',']'的字符串,判断字符串是否有效。有效字符串需满足:左括号必须用相同类型的右括号闭合。左括号必须以正确的顺序闭合。注意空字符串可被认为是有效字符串。示例 1:输入: "()"输出: true示例 2:输入: "()[]{}"输出: ...

2019-08-02 14:31:47 797

原创 算法(快排思想):求无序数组中的中位数

/**求无序数组当中的中位数(快排思想,选中关键字,高低交替扫描)示例:[@"1",@"9",@"6",@"8",@"3",@"2"]输出:@"3"*/+ (void)findMedianValue { NSMutableArray *array = [NSMutableArray arrayWithObjects:@"1",@"9"...

2019-08-01 17:22:01 2059

原创 算法(哈希查找):字符串中找到第一个只出现一次的字符

/**在一个字符串中找到第一个只出现一次的字符示例:@“abcdeffggab”输出 @“c”*/+ (void)findFirstString { NSString *str = @"abcdeffggab"; NSLog(@"输入字符:%@",str); NSMutableDictionary *dic = [NSMu...

2019-07-23 16:50:09 359

原创 算法(数组):有序数组合并

/**两个有序数组合并后依然有序示例:给定 arr1 = [2, 7, 11, 15] arr2 = [1, 5, 6, 8]返回 arr = [1,2,5,6,7,8,11,15]*/+ (void)mergeArray { NSArray *array1 = @[@"1",@"7",@"9",@"22",@"30",@"...

2019-07-23 16:11:42 411

原创 算法(反转):字符串 链表 反转

1.字符串反转:/**给定一个字符串 str 请假字符串反转输出示例:给定 str = @"I am a programmer"返回 str = @"remmargorp a ma I"*/+ (void)stringReverse{ char myStr[] = "I love my country"; char *left ...

2019-07-23 15:26:45 425

原创 算法(动态规划):最长回文数

/**给定一个字符串 s,找到 s 中最长的回文子串。你可以假设s 的最大长度为 1000。示例 1:输入: "babad"输出: "bab"注意: "aba" 也是一个有效答案。注意点:基数回文中心是一个元素。偶数回文中心是两个元素*/1.中心扩散法:遍历每个点位中心//使用中心扩散法得到回文数+ (NSString *)ge...

2019-07-23 10:56:56 1064

原创 算法(数组):两数之和

/**给定一个整数数组 nums和一个目标值 target,请你在该数组中找出和为目标值的那两个整数,并返回他们的数组下标。你可以假设每种输入只会对应一个答案。但是,你不能重复利用这个数组中同样的元素。示例:给定 nums = [2, 7, 11, 15], target = 9因为 nums[0] + nums[1] = 2 + 7 =...

2019-07-23 10:49:23 558

原创 iOS基础:关键字(static,Extern,const)

Static关键字:局部变量:1.在内存中只初始化一次 2.延长生命周期,程序结束才销毁全局变量:1.作用域仅限当前文件,外部类使用Extern关键字也无法访问。作用于函数:对函数连接产生影响,使函数只在本文件内部有效,可以不用担心与其它文件的同名函数产生告饶。使用extern则使其可以让外部访问const关键字:修饰变量,含义是:const修饰的变量值是不可变的,...

2019-05-07 14:45:01 102

原创 Python基本语法学习一 (数字 字符串 字典 数组 元祖 运算符 循环)

#coding=utf-8print "hello python!";#raw_input("请输入内容:\n")#import sys;x = 'runoob';sys.stdout.write(x + '\n')print "以下是数字操作:"a,b = 200.32,54print a, bprint "以下是字符串操作:"str = "i love my wifi"...

2019-01-20 23:15:07 152

原创 iOS中的锁

OSSpinLock自旋锁(虽然已经被证明不安全优先级翻转),性能最高的锁。原理很简单,就是一直做而忙等。它的缺点是当等待时会消耗大量CPU资源,所以它不适用于较长时间的任务对于内存缓存的存取来说,它非常合适。轻量级,比如sideTable表的访问 dispatch_semaphore(同步)dispatch_semaphore是GCD用来同步的一种方式。允许通过等待/信号的信号事...

2018-12-25 22:07:25 746

原创 iOS 第三方框架

1.AFNetworking主要类关系图2.SDWebImage3.ReactiveCocoa4.AsyncDisplayKit基本原理:...

2018-12-23 19:02:19 65 1

原创 UI架构相关

2018-12-21 14:03:13 70 1

原创 iOS 设计原则和模式

1.单一职责原则:一个类只负责一件事2.开闭原则:对修改关闭,对扩展开放(类不要修改)3.接口隔离原则:使用多个专门的协议,而不是一个庞大臃肿的协议,协议中的方法尽量少(委托,数据源)4.依赖倒置原则:抽象不应该依赖于具体实现,具体实现可以依赖于抽象5.里氏替换原则:父类可以被子类无缝替换,且原有功能不受任何英雄(KVO)6.迪米特法则一个对象应当对其他对象有尽可能少的了解(高...

2018-12-21 13:32:02 38

原创 iOS 网络

1.http介绍请求报文:响应报文2.http的请求方式有哪些?get post head put delete options3.get和post方式的区别(rfc官方文档)get请求参数以?分割拼接到url后面,post请求参数在body里面get参数长度限制2048个字符,post没有限制安全性:不应该引起server端的任何状态变化:...

2018-12-21 12:04:27 70 1

原创 iOS RunLoop

1.什么是RunLoop?RunLoop是通过内部维护的事件循环来对事件、消息进行管理的一个对象没有消息需要处理时,休眠以避免资源占用 (用户态 变成 内核态(进程))有消息需要处理时,离开被唤醒 (内核态 变成 用户态)2.RunLoop的数据结构NSRunLoop(foundation)是CFRunLoop(corefoundation)的封装,提供了面向对象的AP...

2018-12-20 08:43:44 68 1

原创 iOS 内存管理

1.内存布局堆栈:方法调用堆:通过ALLOC等分配的对象BSS:未初始化的全局变量等数据:已初始化的全局变量文本:程序代码2.内存管理方案TaggedPointer:小对象(NSNumber)(非指针型isa)NONPOINTER_ISA 64位架构iOS应用占用64位,本身32 40就够用,为了提高内存利用,剩余比特位存储内存管理相关内容散...

2018-12-19 22:00:35 27 1

原创 iOS OC

1.你用分类做了哪些事情?声明私有方法 分解体积庞大的类 把framework私有方法公开化2.分类的特点?运行时决议(扩展是编译) 可以为系统类添加分类 分类添加的方法可以“覆盖”原类方法3.分类可以添加哪些内容?实例方法 类方法 协议 属性(get方法set方法 添加实例变量需要通过关联技术)4.分类结构体5.分类加载调用栈_objc_in...

2018-12-19 22:00:17 38 1

原创 iOS Block

1.什么是块2.block的本质3.截获变量4 .__块修饰符5.block的内存管理6.block的复制操作:7。8.copy9.栈上__block变量的拷贝操作10 .__转发存在的意义11.block的循环引用...

2018-12-19 21:59:12 34

原创 iOS Runtime

1.objc_object2.objc_class3.isa指针ISA指向4.cache_tcache_t数据结构5.class_data_bits_t6.class_rw_t7.class_ro_t8.method_t9.类型编码const char *类型10.总结:11.对象类对象元类对象...

2018-12-19 21:58:46 30 1

原创 iOS 多线程

1.怎么用GCD实现多读单写dispatch_barrier_async2.ios系统为我们提供的几种多程序技术各自的特点是怎样的?GCD:实现一些简单的线程同步,子线程的分派,包括一些类似于多读单写nsoperation:比如adnetworking sdwebimage特点比如对任务的状态进行控制,包括添加依赖,移除依赖nsthread:实现常驻线程3.nsoperat...

2018-12-19 21:58:19 64 1

原创 iOS UI

1.数据源同步方案?并发访问,深拷贝,记录操作(耗内存,记录操作);串行访问,排版和操作全部在一个子线程串行队列操作(任务多,会延时)2.UIView和CALayer的关系?的UIView只负责处理触摸等事件,参与响应链; CALayer的负责显示内容的内容uiview包含一个calayer和一个bgcolor(bgcolor对层同名属性方法的包装)显示部分是图层的内容(后备...

2018-12-19 21:57:41 41 1

转载 Mac更新npm和node版本

故宫:查看当前版本:npm --version更新到最新版: sudo npm install npm@latest -g 1.查看当前版本: node 1  node -v 2.清除NPM当前缓存信息: 2 sudo npm cache clean -f 3.执行下载节点:...

2018-12-16 13:18:46 633

原创 react-native :command not found 在别的路径不能使用react-native命令解决

1. 在终端输入命令: sudo npm install -g react-native-cli  出现的一个类似:/usr/......的路径记录下路,这里叫做路径A2.使用vim命令 输入:vim ~/.bash_profile     在里面加入:export RN=路径A                         export PATH=$RN:$PATH   然后按...

2018-12-16 13:17:51 3009

转载 NSSet与NSArray区别

NSSet到底什么类型,其实它和NSArray功能性质一样,用于存储对象,属于集合; NSSet,NSMutableSet类声明编程接口对象,无序的集合,在内存中存储方式是不连续的,不像NSArray(是有序的集合)类声明编程接口对象是有序集合,在内存中存储位置是连续的;        NSSet和我们常用NSArray区别是:在搜索一个一个元素时NSSet比NSArray效率高,主要是它用到...

2018-08-15 15:43:04 996

转载 iOS离屏渲染之优化分析

iOS离屏渲染之优化分析在进行iOS的应用开发过程中,有时候会出现卡顿的问题,虽然iOS设备的性能越来越高,但是卡顿的问题还是有可能会出现,而离屏渲染是造成卡顿的原因之一。因此,本文主要分析一下离屏渲染产生的原因及避免的方法,最后介绍一下Xcode自带的分析离屏渲染的工具Instruments的使用。UIView和CALayer关系UIView继承自UIResponder,可以处理系统...

2018-08-08 17:53:30 139

原创 建造者模式

建造者模式:将一个复杂对象的创建与它的表示分离,使得同样的构建过程可以创建不同的表示。

2018-07-11 19:00:17 96

转载 代理设计模式

在项目中我们经常会用到代理的设计模式,这是iOS中一种消息传递的方式,也可以通过这种方式来传递一些参数。这篇文章会涵盖代理的使用技巧和原理,以及代理的内存管理等方面的知识。我会通过这些方面的知识,带大家真正领略代理的奥妙。写的有点多,但都是干货,我能写下去,不知道你有没有耐心看下去。本人能力有限,如果文章中有什么问题或没有讲到的点,请帮忙指出,十分感谢!iOS中消息传递方式在iOS中有很多种消息传...

2018-07-05 12:24:58 154

转载 观察者模式

IOS设计模式 - 观察者模式 前言:23种软件设计模式中的观察者模式,也是在软件开发中,挺常用的一种设计模式。而在苹果开发中,苹果Cocoa框架已经给我们实现了这个设计模式,那就是通知和KVO(Key-Value Observing),本篇博文将会先讲解通知和KVO的常用方法和使用示例,然后讲解观察者模式以及对观察者模式的实现。 文章内容大纲:1,KVO的使用2,通知的使用3,观察者模式 正文:...

2018-07-05 11:41:40 470

原创 过过 适配器模式

问题场景:1.我买的日版的iPhone在中国无法使用电信卡,没有信号,这时候我就需要一个卡贴,卡贴就是今天要讲的类似的适配器。  2.在客户端中,某个界面显示的是红色,而红色是由服务器返回你的一个二进制值,某天服务器开发的人换了,他把二进制值换成了dui'y...

2018-07-02 19:05:50 118

原创 简单工厂 工厂方法 抽象工厂 了解一下

简单工厂:工厂可以创建同一系列的产品,产品的接口一致,但工厂就要根据参数进行判断到底创建哪种产品。比如:面馆有洋葱面,牛肉面,鸡蛋面...你要吃哪种面,就要根据你的口味决定。工厂方法:可以有多种工厂,工厂有共同的接口,一个工厂只能产生一种产品,比起简单工厂,工厂方法不需要判断,降低了耦合比如:杨老板有三个店铺:只卖包子的包子铺,只卖水的水吧,只卖咖啡的咖啡店抽象工厂:可以产生多个系列的产品(涉及到...

2018-06-29 19:19:46 178

原创 桥接模式 和 享元模式 介绍

桥接模式:在使用继承的场景中,如果继承和被继承的两个类,是需要独立变化并且需要把抽象层和实现层解耦的情况下,使用桥接模式;一般来说都需要在抽象层提供一个聚合的实现类的接口。优点:1、抽象和实现的分离。 2、优秀的扩展能力缺点:聚合关系在抽象层建立,所以开发者要在抽象层编程,这会让系统设计多了一些理解难度。例子:游戏系统中的定义和执行;遥控器和电视机的设计。享元模式:相信每个iOS开发者都会,它主要...

2018-06-29 17:50:09 638 1

原创 谈谈MVC-MVP-MVVM的渐进使用和误解

hfhgfjfjhfhjfjhfhj

2018-06-26 18:51:12 174

原创 策略模式的一点思虑

概念:

2018-06-12 17:11:04 139

空空如也

空空如也

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

TA关注的人

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