自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

CoderL

记录前进的足迹

  • 博客(72)
  • 问答 (1)
  • 收藏
  • 关注

原创 Flutter(iOS)之podhelper.rb文件内容代码简单解释

我们知道要想在原生工程集成Flutter module时,如果使用 CocoaPods 管理依赖和已安装的 Flutter SDK,需要在pod文件中添加flutter_application_path = './flutter_module'load File.join(flutter_application_path, ‘.ios’, ‘Flutter’, ‘podhelper.rb’)这两行代码,然后在target中添加一行:install_all_flutter_pods(flu.

2021-07-23 16:01:46 1351 5

原创 APP名字设置默认多语言时遇到的问题

InfoPlist.strings 文件,用于app名称,获取权限的本地化。localizable.strings文件,用于app内字符串的本地化。添加多语言都会有个base文件,是其他多语言(English,Korean...)的父类。当其他多语言文件中没有对应字符串的多语言时会从base文件中寻找。App如何决定何种多语言1.当安装/启动App时,系统会根据当前的iphone语言去和App的多语言文件匹配;2.如果匹配不到就会去遍历首选语言顺序 去匹配App内是否有相应的多语言...

2020-08-29 11:53:26 781

原创 读书笔记之Delegate中的优化

我们在编写代理协议时,代理协议中的方法一般都是@optional的,代理方不一定实现了代理协议中的所有方法。那么我们在代理方上调用可选方法时候,最好提前使用类型信息查询方法来判断这个委托对象是否能够相应相关协议方法:if (delegate respondsToSelector:@selector(selector)) { [delegate selector];}用 respondsToSelector: 来判断代理方是否实现了相关的方法,如果实现了就调用,如果没有实现就不执行任何操作

2020-06-12 17:34:39 298

原创 iOS关于Copy和mutableCopy方法的浅析

以数组为例,来记录一下Copy 和 mutableCopy的使用细节。我们知道可变数组和不可变数组之间的转化可以通过下面的方式:[NSMutableArray copy] --> NSArray[NSArray mutableCopy] --> NSMutableArray我们也知道:(图片来自网络)那么当我们调用数组的mutableCopy方法时,是否将数组中所包含的对应也深拷贝了呢?testClass* class0 = [testClass new];cl.

2020-06-10 16:09:23 2057

原创 WKWebview之Cookie小结

首先来看一下 NSHTTPCookieStorage 这个类:/*! @class NSHTTPCookieStorage @discussion NSHTTPCookieStorage implements a singleton object (shared instance) which manages the shared cookie store. It has methods to allow clients to set and remove cook

2020-06-05 18:48:42 575

原创 Flutter环境配置踩坑(MAC)

作为一个iOS开发者,mac本上已经安装了Xcode。按照中文官网的步骤来https://flutterchina.club/setup-macos/1.按照步骤下载flutter安装包(这里我用了科学上网 在官网直接下载的稳定版最新的)2.解压安装包,打开终端,按照下面的格式 基于flutter所在的目录输入命令两个冒号中间为flutter所在的上级目录地址expor...

2020-05-14 14:14:38 964

原创 HTTP 0.9/1.0/1.1/2 版本变迁

记录一下 稍后总结HTTP 0.9 - 1.0 - 1.1 - 2 版本变迁http://www.52im.net/thread-1709-1-1.htmlHTTP 1.1 版本协议详解http://www.52im.net/thread-1677-1-1.htmlHTTP协议http://www.52im.net/thread-2456-1-1.html移动网络优化手...

2019-12-26 11:00:51 340

原创 NSNotification&NSNotificationQueue

关于我们日常所使用的NSNotification,其实有很多知识点和细节,推荐通读这篇文章:苹果通知开发文档总结如下:一 基础内容通知中心:@property (class, readonly, strong) NSNotificationCenter *defaultCenter;Anotification centermanages the sending ...

2019-12-16 19:16:31 242

原创 iOS 判断扇形按钮的点击

遇到一个需求是在页面上添加下面这样一个图片,根据用户点击的不同位置,让响应区域变颜色,以达到模拟按钮的感觉。不同响应区域的变颜色的图片,UI给了 只有该区域变颜色,其他部分为透明 这样的图片。先将上面这个未点击的图片添加在xib,然后依次添加不同位置点击的图片在上面并设置hide为yes。所以在判定完用户点击的位置在某个区域中时,只需要将该图片hide设置为no,然后在to...

2019-12-13 10:49:47 743

原创 关于NSNotificationCenter收到多次相同通知的问题

在项目中某个地方需要接收一个通知,然后去做一项任务,调试时发现有时会收到两条相同的通知,奇怪了,排查步骤如下:1.查看是否发送了两次通知; (结果发现只发送了一次)2.查看- (void)addObserver:(id)observer selector:(SEL)aSelector name:(nullable NSNotificationName)aName object:(nulla...

2019-11-27 14:11:05 2410

原创 xib多语言增加控件相应strings文件内容更改问题

当我们给xib添加完strings文件后,后续需要对xib进行修改,当增添了新的控件时,发现对应的strings文件不会随之改变,也找不到什么按钮可以调整,这时候就需要用到ibtool命令。在网上看到的是使用ibtool xxx.xib --generate-strings-file ./NewTemp.string使用该命令之后不知怎么提示下方内容,失败,也没有新文件生成。...

2019-11-15 17:17:50 364

原创 使用ibtool命令时提示xcode-select: error: tool 'ibtool' requires Xcode

首先你肯定得先初始化是吧xcode-select --install使用命令:(针对从appStore下载的情况,如果时自己安装的可以试试换成相应的目录)sudo xcode-select --switch /Applications/Xcode.app/Contents/Developer会要求输入开机密码。...

2019-11-15 16:42:17 292

原创 打破NSTimer的循环引用

说到Timer定时器不得不说说,Timer造成的循环引用。当我们跳转到一个VC时,在这个VC创建一个重复触发的定时器,当从这个VC返回时,发现VC的delloc方法并未调用,这是因为timer对VC的强引用导致VC无法释放。解决这中问题的关键就是让Timer解除对VC的强引用。首先想到的:1.破除循环引用只要断开一方就可以了呀?所以在VC中把Timer的属性修饰符,由strong变...

2019-11-12 14:07:55 283

原创 iOS CAAnimation(四)控制动画过程

Timing is an important part of animations, and with Core Animation you specify precise timing information for your animations through the methods and properties of theCAMediaTimingprotocol. Two Cor...

2019-09-29 15:15:10 478

原创 iOS CAAnimation(三)核心动画基础

layer在核心动画中的地位:先看一下这个经典的结构图,Core Animation的位置在UIKit/AppKit层之下。Core Animation is a graphics rendering and animation infrastructure available on both iOS and OSX that you use to animate the view...

2019-09-27 17:14:02 206

原创 iOS CAAnimation(二)Layer层隐式动画相关

我们知道,修改自定义创建的layer的部分属性时,会有动画的效果。但是修改view 的属性时,却没有动画出现,这是为什么呢?Core Animation implements its implicit animation behaviors for layers using action objects. An action object is an object that conforms...

2019-09-26 18:21:00 188

原创 iOS CAAnimation(一)基础属性

先来看一下UIView和CALayer之间的关系:CAlayer继承了NSObject,负责显示内容,不能响应事件,仅能判断某点是否在该视图内。- (BOOL)containsPoint:(CGPoint)p;UIView继承了UIResponder,负责处理触摸事件,参与响应者链。每一个view都有关联了一个默认的CALayer对象,我们可以通过重写view的+(Class)la...

2019-09-26 13:41:57 224

原创 堆栈之中缀转后缀表达式(C语言)

我们再来复习一下堆栈(Stack)这个数据结构,堆栈是有一定约束的线性表,插入和删除操作都作用在栈顶(Top)位置。我们既可以通过数组顺序实现堆栈,也可以通过链表链式实现堆栈,具体情况具体分析。那么什么是中缀表达式和后缀表达式呢?通俗地来说,中缀表达式就是我们平常用到的表达式的方式,比如说:1+2x(3-4)而后缀表达式呢?则是计算机容易识别的,但是对于人来说有点难受:...

2019-08-14 15:08:40 1510 1

原创 第六七八条:属性相关

在Java或C++中,对象布局在编译器(compile time)已经固定了,对象的关于成员变量的代码被编译器替换为“偏移量(offset)”,这个偏移量是“硬编码(hardcode)”,表示这个变量距离存放对象的内存区域的起始地址有多远。这种情况下,如果修改类定义之后就必须重新编译,否则就会出错。OC在这方面的优化是,把实例变量当做是一种存储偏移量所用的“特殊变量(special varia...

2019-08-11 22:37:59 118

原创 排序算法三:交换排序

冒泡排序:冒泡排序是最简单的交换排序。对N个元素的数组进行排序时,一共进行N-1次循环。在第i次循环中,对从第1到低N-i个元素从前到后进行比较,每次比较相邻的两个元素,若前一个元素大于后一个元素,则交换两者位置,否则保持不变。这样一次循环完成后,就把第i大的元素移动到第N-i个位置上,这称为第i趟冒泡。整个过程一共进行N-1次冒泡。void bubbleSort(int *a, int...

2019-08-09 15:21:11 272

原创 C++之构造析构函数

来总结一下C++中的构造函数 析构函数,强化一下记忆:构造函数:构造函数一种特殊的成员函数,名字与类名相同,没有返回值,可以有参数。构造函数的作用是在创在对象时,对对象内的成员进行赋初值操作。构造函数必须是 public 属性的,否则创建对象时无法调用。当然,设置为 private、protected 属性也不会报错,但是没有意义。构造函数没有返回值,因为没有变量来接收返...

2019-08-06 16:19:57 414

原创 排序算法二:选择排序

首先来看一下简单选择排序:思想:在未排序的序列中选出最小的元素和当前序列的第一个元素互换,然后在剩下的元素中选出一个与剩下元素的第一个位置互换,依次交换,最后就会形成一个从小到大的已排序序列。void simpleSelectSort(int *a, int N){ int i,j,min; for (int i=0; i<N; i++) { //找...

2019-08-06 11:33:28 153

原创 排序算法一:插入排序

背景知识:在学习排序算法前,我们需要知道两个概念:排序算法的稳定性、逆序对在一组待排序记录中,如果存在任意两个相等的记录R和S,且在待排序记录中R在S前,如果在排序后R依然在S前,即他们前后位置在排序前后不发生改变,则称该排序算法是稳定的。(排序按从小到大规则的情况下)如果i<j,但是在数组中a[i]>a[j] 则称(i,j)是一对逆序对。简单插入排序:思想:...

2019-08-06 10:40:52 182

原创 最大堆最小堆的实现(C语言)

堆是特殊的队列,从堆中取元素是按照元素的优先级大小,而不是元素进入队列的先后顺序。因此,堆也通常被称为“优先队列”。堆的最常用结构是用二叉树表示,不特指的话,他是一棵完全二叉树。因此通常不必用指针,而是用数组来实现堆的存储。我们知道,完全二叉树用数组来表示,就相当于把全完二叉树的层序遍历依次存入数组中,知道最后一个节点。需要注意的是,所用的数组的起点为1,而不是0。这样的目的是很容易能......

2019-08-05 16:30:33 6037 5

原创 第5条:用枚举表示状态选项

需要的知识:位运算详细见这里。程序中的所有数在计算机内存中都是以二进制的形式存储的。位运算就是直接对整数在内存中的二进制位进行操作。按位与 & :通常用于二进制的取位操作,例如一个数 and 1的结果就是取二进制的最末位。这可以用来判断一个整数的奇偶,二进制的最末位为0表示该数为偶数,最末位为1表示该数为奇数。相同位的两个数字都为1,则为1;若有一个不为1,则为0。...

2019-08-04 23:12:14 586

原创 C语言指针小总结

主要资料来源:https://www.jianshu.com/p/355374e03fb3//默写年华Antifragilehttp://c.biancheng.net/cpp/html/71.html //C语言中文网https://www.cnblogs.com/wuyudong/p/c-void-point.html //wuyudong书籍:疯狂iOS讲义最近...

2019-08-01 17:07:19 372

原创 第四条:多用类型常量少用#define

这一条的要点最后再总结吧。先说说#define,当我们在代码中要定义一个常量的时候,我们可能会使用下面这种方式:#define whatEver 100这样的预处理指令会把代码中的相关定义内容全部替换成100,达到了我们想要的效果。那么还有没有更好的方式呢?我们可以使用这样的方式:static const int whatEver 100;这样写的好处:1.当我...

2019-08-01 11:24:54 255

原创 第三条:多使用字面量语法

应该使用字面量语法来创建字符串,数值,数组,字典。应该通过取下标操作来访问数组下标或是字典中的键所对应的元素。我们经常用到的有Foundation框架中的NSString,NSNumber,NSArray,NSDictionary。这条经验告诉我们要多使用字面量来创建上述这些类。比如说NSString,何为字面量创建呢?@"hello"; //这就是一个字面量NSStr...

2019-07-30 22:13:22 172

原创 第二条:在类的头文件中尽量少引入其他头文件

除非有必要,否则不要引入头文件。一般来说,应在某个类的头文件中使用向前声明来提交别的类,并在实现文件中引入那些类的头文件。这样做可以尽量降低类之间的耦合(coupling)。有时候无法使用向前声明,比如要声明某个类遵守一项协议。在这种情况下,尽量吧“该类遵守某协议”的这条声明移至“class-continuation分类”中。如果不行的话,就把协议单独放在一个头文件中,然后将其引入。向...

2019-07-29 22:17:55 301

转载 为函数的指针参数申请空间的问题

原文:https://www.cnblogs.com/greatIDeas/archive/2010/11/24/1886915.html下面这段代码是正确的,这段代码通过函数申请一片内存区,并将申请到的内存首地址返回给调用函数:void getptr(int **p,int num){ *p=(int *)maccol(num*sizeof(int)); return;}...

2019-07-29 10:52:20 500

转载 C语言指针函数返回局部变量指针的问题

转载于:https://www.cnblogs.com/mascotxi/p/4394893.html我们大家都知道指针函数的返回指针不能指向函数内的自动变量,如果需要返回函数的内部变量的话,就需要将该变量声明为静态变量。为什么函数能够返回 静态变量的地址而不能返回局部自动变量的地址,到底什么样的对象能够返回其地址,而什么样的对象不能够返回其地址?静态变量与局部自动变量的主要区别是什 么?...

2019-07-29 10:19:03 2015

原创 第一条:了解OC语言

Objective-C使用动态绑定的消息结构;理解C语言的核心概念(内存模型和指针)有助于写好OC程序。动态绑定和多态多态:不同对象以自己的方式响应相同的消息的能力叫做多态。由于OC的动态特性,在OC中其实很少提及“函数”的概念,传统的函数一般在编译时就已经把参数信息和函数实现打包到编译后的源码中了,而在OC中最常使用的是消息机制。调用一个实例的方法,所做的是向该实例的指针发送...

2019-07-26 12:09:21 188

原创 03-树3 Tree Traversals Again (递归)

An inorder binary tree traversal can be implemented in a non-recursive way with a stack. For example, suppose that when a 6-node binary tree (with the keys numbered from 1 to 6) is traversed, the stac...

2019-07-18 15:20:09 275

原创 06-图1 列出连通集 (邻接矩阵&邻接表 实现)

给定一个有N个顶点和E条边的无向图,请用DFS和BFS分别列出其所有的连通集。假设顶点从0到N−1编号。进行搜索时,假设我们总是从编号最小的顶点出发,按编号递增的顺序访问邻接点。输入格式:输入第1行给出2个整数N(0<N≤10)和E,分别是图的顶点数和边数。随后E行,每行给出一条边的两个端点。每行中的数字之间用1空格分隔。输出格式:按照"{v​1​​v​2​​...v...

2019-07-17 17:28:54 517

原创 05-树8 File Transfer(按秩归并&路径压缩)

题目:We have a network of computers and a list of bi-directional connections. Each of these connections allows a file transfer from one computer to another. Is it possible to send a file from any comp...

2019-07-11 11:00:18 101

原创 05-树7 堆中的路径

将一系列给定数字插入一个初始为空的小顶堆H[]。随后对任意给定的下标i,打印从H[i]到根结点的路径。输入格式:每组测试第1行包含2个正整数N和M(≤1000),分别是插入元素的个数、以及需要打印的路径条数。下一行给出区间[-10000, 10000]内的N个要被插入一个初始为空的小顶堆的整数。最后一行给出M个下标。输出格式:对输入中给出的每个下标i,在一行中输出从H[i]到根结点...

2019-07-09 11:16:59 126

原创 求二叉树高度的递归算法中递归过程理解

int GetHeight(AVLTree A){ int MaxH, HR, HL; if(A) { HL = GetHeight(A->Left); HR = GetHeight(A->Right); MaxH = (HL>HR)?HL:HR; return MaxH+1; } ...

2019-07-04 12:08:16 12016 1

原创 04-树4 是否同一棵二叉搜索树

给定一个插入序列就可以唯一确定一棵二叉搜索树。然而,一棵给定的二叉搜索树却可以由多种不同的插入序列得到。例如分别按照序列{2, 1, 3}和{2, 3, 1}插入初始为空的二叉搜索树,都得到一样的结果。于是对于输入的各种插入序列,你需要判断它们是否能生成一样的二叉搜索树。输入格式:输入包含若干组测试数据。每组数据的第1行给出两个正整数N(≤10)和L,分别是每个序列插入元素的个数和需要检...

2019-07-02 16:45:33 415

原创 二叉树相关的过程动图

找了几个有动图的,收藏一下:AVL的左旋右旋:https://www.jb51.net/article/154428.htmAVL讲解:https://blog.csdn.net/lemon_tree12138/article/details/50393548二叉树的各种遍历:http://www.cainiaoxueyuan.com/suanfa/10147.html待续。。...

2019-06-28 16:15:21 1590

原创 iOS Intel_CS_WebRTC V4.1示例项目排雷运行小记

公司的项目需要把项目里用到的Intel的webrtc套件进行更新,先下载来一个示例项目看一哈,解压完,一看这个目录结构怎么这么怪,有Podfile 和.xcworkspace 但是却没有pods和podfile.lock文件,这有点坑。于是把.xcworkspace文件先删掉,然后进入项目目录,运行pod install导入。这次再一看目录,这就顺眼了呀。点击.xcworksp...

2019-06-26 10:46:47 424 3

空空如也

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

TA关注的人

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