- 博客(51)
- 收藏
- 关注
原创 浅谈OC Block
背景OC中的block对于iOS开发新入门的同学确实有点难以理解,总结起来其实有两个难点:一是用法,也就是初学者不知道怎么用;二是原理,block究竟是个什么东西,其内部究竟是怎样组织的。针对以上两点,我从先从个人角度讲解一下其用法,然后再将OC代码转换成C语言,了解其内部具体实现。用法1、全局定义Block,即在文件最开始定义block的形式,相当于定义一个类型,简单理解为此类型类似于Int等,方式如下:typedef void(^AddBlock)(int a, int b);然后
2020-08-26 23:56:46
318
1
原创 ios开发删除launch screen后vc不能铺满整个屏幕的解决办法
解决办法:在plist.info文件中添加Launch screen interface file base name选项。
2020-01-19 22:01:28
1003
原创 http协议
概念:HTTP(Hyper Text Transfer Protocol,超文本传输协议),是一种从万维网服务器传输文本到本地浏览器的传输协议。例如在web应用中,服务器白网页传给浏览器,实际上就是把网页的HTML代码发送给浏览器,然后通过浏览器显示出来。因此,http是在网络上传输HTML的协议,用于浏览器和服务器之间的通信。HTTP是基于TCP/ip协议栈来传递数据(包括HTML文件,...
2019-04-20 11:37:36
543
原创 JSON to Model: Mantle
简介:mantle属于JSON转model的第三方库,利用mantle可以方便的利用JSON文件生成相应的model。作为一种被广泛使用的库,其具有以下优点:1、字段映射比较方便。2、扩展时比较方便。3、可以实现很多复杂的映射关系和数值转换。4、实现了NSCopying和NSCoding协议,可以轻松序列化。强大的功能使得代码比较称重,在使用时的效率相比其它如YYModel,J...
2019-04-20 11:36:19
945
原创 IOS开发模态切换出现黑屏的解决办法
1、使用storyboard设计界面,切换时使用如下切换方式: UIStoryboard *sb = [UIStoryboard storyboardWithName:@"Main" bundle:nil]; SecondViewController *loginC = [sb instantiateViewControllerWithIdentifier:@"scd"];...
2018-11-28 20:28:49
1274
转载 iOS之事件的传递和响应机制
一下博客写的非常详细,而且移动,特此感谢楼主的贡献。原文链接:https://blog.youkuaiyun.com/u011363981/article/details/71728191
2018-11-19 11:12:03
214
原创 子集问题
给定一个可能包含重复元素的整数数组 nums,返回该数组所有可能的子集(幂集)。说明:解集不能包含重复的子集。输入: [1,2,2]输出:[ [2], [1], [1,2,2], [2,2], [1,2], []]class Solution {public: vector<vector<int>> subsetsWith...
2018-08-21 15:53:19
345
原创 阿里算法工程师笔试题
答案如下:#include <iostream>#include <limits.h>using namespace std;int F[100][100];int minStep = INT_MAX;void dfs(int **array, int N, int i, int j, int M, int sum){ if ((i ...
2018-08-17 21:46:12
5822
3
原创 类方法、实例方法
类方法就是静态方法。其它的就是实例方法实例方法可以对当前对象的实例变量进行操作,也可以对类变量进行操作,但类方法不能访问实例变量。实例方法必须由实例对象来调用,而类方法除了可由实例对象调用外,还可以由类名直接调用。另外,在类方法中不能使用 this 或 super。 关于类方法的使用,有如下一些限制:1 在类方法中不能引用对象变量。2 在类方法中不能使用super、this关键字。...
2018-08-01 23:23:43
616
原创 全排列+顺序对问题
题目描述牛牛的作业薄上有一个长度为 n 的排列 A,这个排列包含了从1到n的n个数,但是因为一些原因,其中有一些位置(不超过 10 个)看不清了,但是牛牛记得这个数列顺序对的数量是 k,顺序对是指满足 i < j 且 A[i] < A[j] 的对数,请帮助牛牛计算出,符合这个要求的合法排列的数目。输入描述:每个输入包含一个测试用例。每个测试用例的第一行包含两个整数 n 和...
2018-07-25 19:07:38
2157
原创 n个数求和方案的问题
给定一个有n个正整数的数组A和一个整数sum,求选择数组A中部分数字和为sum的方案数。当两种选取方案有一个数字的下标不一样,我们就认为是不同的组成方案。1、采用动态规划F[i][j]的意义为从i个书中选取某些数使其和为j的方案的个数,则F[i][j]=(j>=array[i])?(F[i-1][j-array[i]]+F[i-1][j]):(F[i-1][j])。初始条件...
2018-07-20 11:11:50
2004
原创 2017网易笔试题之一
题目描述小易来到了一条石板路前,每块石板上从1挨着编号为:1、2、3.......这条石板路要根据特殊的规则才能前进:对于小易当前所在的编号为K的 石板,小易单次只能往前跳K的一个约数(不含1和K)步,即跳到K+X(X为K的一个非1和本身的约数)的位置。 小易当前处在编号为N的石板,他想跳到编号恰好为M的石板去,小易想知道最少需要跳跃几次可以到达。例如:N = 4,M = 24:4-&...
2018-07-18 11:46:47
1579
原创 windows下快速启动cmd窗口
1、切换到目标目录下2、删除:back键 3、输入cmd并回车键4、启动tensorboard命令:tensorboard --logdir=G:\D\graduationData\energySingle\rayData(路径名)。
2018-07-12 15:51:40
1509
原创 多重继承下如何计算类实例对象所占内存的大小
代码如下:#include <iostream>using namespace std;class Base1 {public: virtual void f() { cout << "Base1::f" << endl; } virtual void g() { cout << "Base1::g" << endl; } vir
2018-07-11 20:23:35
458
原创 tensorflow中卷积及池化层以后输出图像尺寸的大小计算方法
卷积层后输出图像大小为:(W+2P-f)/stride+1并向下取整。如输入图像宽度为29,f为3,padding为'SAME',则输出图像大小为(29+2*1-3)/2+1=15。池化层输出图像的大小为W/stride,向上取整。如图像宽度为29,步长为2,则输出图像大小为15....
2018-07-10 15:06:19
9351
6
原创 2018阿里实习校招笔试题
有一个9位数的正整数x,去除掉中间的第5位的数字得到整数y(例如x=123456789,则y=12346789),求问存在多少个这样的x,使得x可以被y整除?(9000个,暴力求解出来的,不知道有没有更好的方法。)...
2018-06-30 11:12:50
3496
2
原创 动态规划之合唱团问题
#include<iostream>#include <math.h>#include <limits.h>#include<algorithm>using namespace std;int main(){ int studentNum; cin>>studentNum; int *energyNum=new int[...
2018-06-25 11:57:39
308
原创 OpenCV掩码mask
mask--掩码:是一个单通道图像(二值图/灰度图)掩码的某个位置为0,则在此通道位置上的操作不起作用掩码的某个位置如果不为0,则在此位置的操作会起作用...
2018-06-21 18:54:24
993
原创 windows控制Linux系统教程
一、windows系统远程控制Linux系统首先下载putty.exe进行安装,下载链接:https://www.chiark.greenend.org.uk/~sgtatham/putty/latest.html安装以后打开软件输入带控制的Linux系统ip这样就可以远程控制Linux系统了。二、从windows系统上传或者下载文件到Linux系统首先下载pscp.exe,这是免安装的,比如路径...
2018-06-21 15:10:50
1161
原创 OpenCV加载人脸识别器出错解决办法
出错类型:OpenCV Error: Unspecified error (The node does not represent a user object (unknown type?)) in cvRead, file C:\build\master_winpack-build-win64-vc14\opencv\modules\core\src\persistence.cpp, line ...
2018-06-21 15:10:04
2532
转载 常用归一化方法
本文转自:https://blog.youkuaiyun.com/acdreamers/article/details/44664205,感谢原作者的付出和分享在机器学习中领域中的数据分析之前,通常需要将数据标准化,利用标准化后得数据进行数据分析。不同评价指标往往具有不同的量纲和量纲单位,这样的情况会影响到数据分析的结果,为了消除指标之间的量纲影响,需要进行数据标准化处理,以解决数据指标之间的可比性。原始数据...
2018-06-21 09:44:53
17561
原创 Python中图表中文显示方法
myfont = FontProperties(fname='C:/Windows/Fonts/simsun.ttc',size=14)plt.legend(prop =myfont)plt.xlabel('能量值',fontproperties=myfont)plt.ylabel("能量值",fontproperties=myfont)plt.title("映射关系",fontprope...
2018-06-12 17:09:42
3117
原创 tensorflow教程1
1、tf.argmax()使用方法tf.argmax(A,1):第二个参数为1时返回矩阵中每一行最大值的索引号import tensorflow as tfA = [[1, 3, 4, 5, 6]]B = [[1, 3, 4], [2, 4, 1]]with tf.Session() as sess: print(sess.run(tf.argmax(A, 1))) pr...
2018-06-07 17:12:55
199
转载 内联函数、虚函数
在C++中,inline关键字和virtual关键字分别用来定义c++中的内联函数和虚函数,他们在各自的场合都有其各自的应用,下面将简单介绍他们各自的功能,然后在说明为什么一个函数不能同时是虚函数和内联函数(inline)内联函数(inline)内联函数的目的是为了减少函数调用时间。它是把内联函数的函数体在编译器预处理的时候替换到函数调用处,这样代码运行到这里时候就不需要花时间去调用函数。但内联函...
2018-06-05 21:49:58
554
转载 构造函数为什么不能是虚函数
1,从存储空间角度 虚函数对应一个vtable,这大家都知道,可是这个vtable其实是存储在对象的内存空间的。问题出来了,如果构造函数是虚的,就需要通过 vtable来调用,可是对象还没有实例化,也就是内存空间还没有,无法找到vtable,所以构造函数不能是虚函数。2,从使用角度 虚函数主要用于在信息不全的情况下,能使重载的函数得到对应的调用。构造函数本身就是要初始化实例,那...
2018-06-05 21:44:46
239
原创 MapReduce编程入门及hadoop的一些基本操作
1、编写java程序并进行编译(这里默认已经安装好了java编译器并进行了环境变量配置):例如创建WordCount.java文件,程序如下:/** * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file *...
2018-05-07 16:09:20
513
原创 const用法
const char *function(const char *a) const左边第一个const表明函数的返回值是不能进行修改的中间的const表明函数中传入的参数内容是不能修改的最后一个const一般用于类中成员函数后面,表明这个成员函数为只读类型,不能修改类中任何成员变量const char *p 和char const *p一样,都是说明指针p所指向的类容不可更改char *cosnt...
2018-04-19 09:36:48
153
原创 栈的压入和弹出
题目描述输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否为该栈的弹出顺序。假设压入栈的所有数字均不相等。例如序列1,2,3,4,5是某栈的压入顺序,序列4,5,3,2,1是该压栈序列对应的一个弹出序列,但4,3,5,1,2就不可能是该压栈序列的弹出序列。(注意:这两个序列的长度是相等的)/*判断第二个栈是否为该栈的弹出序列,首先看出栈序列的第一个元素,例子中出栈的第一个元素为4,...
2018-04-02 19:42:12
251
转载 变量存储方式
栈区:由编译器自动分配释放,存放函数的参数值,局部变量的值等堆区:由程序员分配和释放,如程序员不释放,程序结束时可能由OS回收全局区(静态区):全局变量和静态变量的存储是放在一起的,初始化的全局变量和静态变量在一块区域,未初始化的全局变量和静态变脸给的存储在相邻的另一块区域。int a = 0; //全局初始化区, 可以被其他c文件 extern 引用satatic int ss = 0; //...
2018-03-30 14:58:15
370
原创 C++与C中的结构体及class直接的区别(C中没class)
1、class与struct的区别:a、成员访问权限:class的成员访问权限为private,struct的成员访问权限为publicb、默认的继承方式:class的默认继承方式为private,struct的默认继承方式为public2、struct在C和C++之间的区别a、C中,struct是用户自定义的数据类型,而在C++中,struct是抽象数据类型,支持成员定义函数b、C中的struc...
2018-03-26 21:28:43
453
原创 C++易出错点之抽象类
抽象类是指含有纯虚函数的类,该类不能建立对象,只能声明指针和引用,用于基础类的借口声明和运行时的多态,如果抽象类的某个派生类再向继承类体系的跟回溯过程中,并不是所有的纯虚函数都实现了,那么该类也是抽象类...
2018-03-26 21:05:45
240
转载 static_cast和dynamic_cast,静态类型转换和动态类型转换的区别
说起C++中的继承、多态、虚函数等概念,可能很多同学都有所了解,但是要说真正熟知的同学可能就不是很多了。最近在编程过程中了解到C++类型的层次转换(这就涉及到了多态和继承的相关概率),通常C语言中可以对内置类型进行强制转换,但是这样做不是很安全,在C++标准中,提供了关于类型层次转换中的两个关键字static_cast和dynamic_cast。一、static_cast关键字(编译时类型检查)用...
2018-03-26 21:02:18
1128
原创 C++易错点之模板函数
//一、普通模板函数//1、模板函数的申明和定义template<typename T>int compare(const T& left,const T& right){ if(left<right) { return -1; } else return 1;}//1、模板函数的调用方式compare<int&g...
2018-03-26 20:51:50
249
转载 C语言系列(六)结构体和联合体
http://blog.youkuaiyun.com/u011974987/article/details/52305364
2018-03-26 15:16:58
187
转载 线程和进程的联系与区别
线程,有时被称为轻量级进程(Lightweight Process,LWP),是程序执行流的最小单元。一个标准的线程由线程ID,当前指令指针(PC),寄存器集合和堆栈组成。另外,线程是进程中的一个实体,是被系统独立调度和分派的基本单位,线程自己不拥有系统资源,只拥有一点儿在运行中必不可少的资源,但它可与同属一个进程的其它线程共享进程所拥有的全部资源。在多线程OS中,线程是能独立运行的基本单位,因而...
2018-03-26 10:18:12
158
原创 C++容易出错的点
1、c风格字符串的两种形式:1、char a[] = {'a', 'b','v', '\0'}; 手动添加结束符‘\0’2、char a[] = "abv"; 默认添加'\0'2、sizeof 返回的值表示的含义如下(单位字节): 数组 —— 编译时分配的数组空间大小; 指针 —— 存储该指针所用的空间大小(存储该指针的地址的长度,是长整型,应该为 4 ); 类型 —— ...
2018-03-25 19:12:34
348
翻译 结构体占用内存的大小及二维数组如何索引更快
在x86系统下,sizeof如下结构体的值是多少?12345struct{ char a[10];int b;short c[3];}偏移量必须为其类型的整数倍,结构体大小必须是所有成员大小的整数倍 char 偏移量0,地址0-9 int 偏移量10不是sizeof(int)的倍数,故而修正为12,地址12-15 short 偏移量16,地址16-21 结构题大小22不是1,...
2018-03-25 11:15:48
509
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人