自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

MayerF的专栏

学无止境,Keep Going!

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

转载 苹果证书的实现机制

精析-苹果开发者证书的实现机制

2018-10-17 15:00:56 377

原创 ios 国际化设置及默认语言设置

配置国际化语言项目工程Project —> info —> localization 点击 +,添加支持的语言 添加简体中文 同理可以添加其他任何语言配置应用名称选中info.plist –> 快捷键(command + N) –> 选中String File –> next –> Save AsSave As 命名必须是In...

2018-03-07 15:05:16 7920 1

原创 浏览器跨域-CORS

CORS原理分析一、简介CORS全称为”跨域资源共享”(Cross-origin resource sharing) 它允许浏览器跨服务器发起XMLHttpRequest 请求,从而解决Ajax只能同源使用的限制。CORS需要浏览器和服务器同时支持。目前大部分浏览器都支持该功能,但IE浏览器不能低于IE10。只要浏览器支持CORS,主要重任就落到了服务端,需要服务端根据需求配置CORS响应头

2017-11-07 16:21:17 2407

原创 iOS推送-从证书申请->移动端代码->node.js服务端代码

证书申请创建AppID从证书颁发机构请求request证书申请development证书申请Provisioning Profiles申请SSL推送证书下载已经申请的文件移动端代码服务端配置生成pem文件验证生成的pem文件是否可用Nodejs代码此教程更新于17年8月,之后可能会有变动。此教程基于development环境,生产环境雷同。证书申请创建AppID1.1 用于推送的Ap

2017-08-17 17:24:16 1717 1

原创 JS学习-操作表单

用JavaScript操作表单和操作DOM是类似的,因为表单本身也是DOM树不过表单的输入框、下拉框等可以接收用户输入,所以用JavaScript来操作表单,可以获得用户输入的内容,或者对一个输入框设置新的内容HTML表单的输入控件主要有以下几种:文本框,对应的<input type="text">,用于输入文本;口令框,对应的<input type="password">,用于输入口令;单选

2017-08-15 15:59:11 536

原创 JS学习-浏览器对象

windowwindow对象不仅作为全局作用域,也表示浏览器的窗口innerWidth和innerHeight:表示浏览器窗口的内部宽度和高度。内部宽高是指除去菜单栏、工具栏、边框等占位元素后,用于显示网页的净宽高outerWidth和outerHeight:浏览器窗口的整个宽高navigatornavigator对象表示浏览器的信息。navigator.appName:浏览器名称navi

2017-08-15 14:37:23 386

原创 JS学习-原型链

关于原型链、propotype和__proto__还处于浑浑噩噩中,待以后补上。 参考链接: 三张图搞懂JavaScript的原型对象与原型链

2017-08-15 14:16:13 344

原创 JS学习-面向对象编程

和Swift等其他面向对象编程的语言不同,JS没有类和实例对象的概念。 JS是通过原型(prototype)来实现的面向对象编程原型实现继承原型是指当我们想要创建xiaoming这个具体的学生时,我们并没有一个Student类型可用。那怎么办?恰好有这么一个现成的对象:var robot = { name: 'Robot', height: 1.6, run: functi

2017-08-14 18:01:25 331

原创 JS学习-正则表达式

1.1 常见的判断Email地址是否合法,电话号码、身份证位数等,正则匹配就是为此而生。 正则表达式是一种用来匹配字符串的强有力武器。它的设计思想是用一种描述性的语言来给字符串定义一个规则,凡是符合规则的字符串,我们就认为它“匹配”了,否则,该字符串就是不合法的 对于专门的正则表达式学习教程推荐:正则表达式30分钟入门教程基本规则:\d匹配一个数字\w匹配一个字母或数字.匹配任意字符*匹

2017-08-14 17:20:36 370

原创 JS学习-标准对象

再JS世界里,一切皆对象。 为了区分对象的类型,JS中使用typeof操作符来获取对象类型,且返回字符串:typeof 123; // 'number'typeof NaN; // 'number'typeof 'str'; // 'string'typeof true; // 'boolean'typeof undefined; // 'undefined'typeof Math.ab

2017-08-14 16:01:03 366

原创 JS学习-generator

generator(生成器)是ES6标准引入的新的数据类型。 一个generator函数不会调用不会立即执行,而是调用next()函数才回执行:function* foo(x) { yield "1"; yield "2"; yield "3"; return x+x;}var fooRe = foo(3);//不会立即执行var next1 = fooRe

2017-08-11 11:18:34 405

原创 JS学习-箭头函数

ES6标准新增了一种新的函数:Arrow Function(箭头函数) 类似于Swfit中的闭包形式x => x * x;//等价于function (x) { return x * x;}如果参数不止一个:// 两个参数:(x, y) => x * x + y * y// 无参数:() => 3.14// 可变参数:(x, y, ...rest) => { var

2017-08-09 11:19:45 480

原创 JS学习-闭包

函数作为返回值高阶函数除了可以接收函数作为参数外,还可以把函数作为结果返回。function lazy_sum(arr) { var sum = function () { return arr.reduce(function (x, y) { return x + y; }); } return sum;}var

2017-08-09 10:58:24 311

原创 JS学习-filter()和sort()

filter()1.1 顾名思义filter()是一个具有过滤功能的函数 filter()也是Array的一个函数。它接收一个函数,然后根据此函数的返回布尔值决定是否丢弃该元素。true:保留;false:丢弃://去耦var arr = [1, 2, 4, 5, 6, 9, 10, 15];var r = arr.filter(function (x) { return x % 2

2017-08-09 10:27:08 3082

原创 JS学习-map()和reduce()

map()此map()是函数,非Map类型。 map()作为高阶函数,把运算的规则抽象。它是Array里的一个函数,返回一个新的数组://函数作为参数function pow(x) { return x * x;}var arr = [1, 2, 3, 4, 5, 6, 7, 8, 9];arr.map(pow); // [1, 4, 9, 16, 25, 36, 49, 64,

2017-08-09 10:06:14 527

原创 JS学习-方法

1.1 JS中定义对象方法//在一个方法内部,this是一个特殊变量,它始终指向当前对象,也就是xiaoming这个变量。所以,this.birth可以拿到xiaoming的birth属性。var xiaoming = { name: '小明', birth: 1990, age: function () { var y = new Date().getFu

2017-08-08 18:14:18 599

原创 JS学习-变量作用域

JS的变量作用域和其他语言的的变量作用域类似。变量提升JS函数定义有个特点:它会先扫描整个函数体语句,把所有声明的变量提升到函数顶部/*虽然是strict模式,但语句var x = 'Hello, ' + y;并不报错,原因是变量y在稍后申明了。但是alert显示Hello, undefined,说明变量y的值为undefined。这正是因为JavaScript引擎自动提升了变量y的声明,但不会提

2017-08-08 17:38:46 398

原创 JS学习-函数的定义和调用

函数定义JS的函数和定义和所有的高级语言类似 JS和Swift一样使用funciton关键字来定义函数function abs(x) { if (x >= 0) { return x; } else { return -x; }}函数调用2.1 JS可以传入任意和参数而不影响使用。这和编译型的语言有很大不同//如果参数多顺序取值abs(1

2017-08-08 13:25:49 383

原创 JS学习-iterable

1.1 iterable字面意思:可迭代的,可重复的 iterable是ES6标准引入的新的类型。而Array、Map和Set都属于iterable类型 1.2 为什么加入iterable类型?遍历array可以采用下标循环,遍历Map和Set无法使用下标。集合类型不统一。对于array类型的for...in循环,当添加额外的属性后,会有意外效果。因此统一集合类型iterable中的 fo

2017-08-08 13:01:38 2764

原创 JS学习-Map和Set

对于JS对象要求键必须是字符串,而其他的数据类型无法满足。为了解决这个问题,ES6引入了新的数据类型MapMapMap是一组键值对的结构,不仅解决了其他数据类型无法作为键值对的问题,同时提高了查找速度(是不是原先的对象本来就是可哈希的具有很快的查找速度,有待验证)。var m = new Map([[true,"A"],[2,"B"]]);alert(m.get(true));// "A"SetS

2017-08-08 11:38:36 379

原创 JS学习-对象和循环

对象类似于大部分语言中的字典类型 1.1 检测对象是否拥有某一属性,可以用in或者hasOwnProperty() 1.2 两者的区别: in:判读某一对象属性的存在不一定是此对象的,有可能是此对象从父类继承过来的 hasOwnProperty():判读某一对象的属性是否是自身拥有的。循环和swift中的循环取出值不同 2.1 对于对象中得for ... in循环,变量是每个键值对的ke

2017-08-08 11:17:46 418

原创 JS学习-数组

1.1 JS的数组可以包含任意数据类型的任意数据。 注意1:1. OC数组包含同一类型的对象;2. swift包含同一类型的任意数据 1.2 通过索引赋值时,如果索引超过了数组范围,则数组的大小会自动变大(为了避免出现错误,存取值保证不会越界):var arr = [1, 2, 3];arr[5] = "x";arr; // arr变为[1, 2, 3, undefined, undefin

2017-08-08 10:58:10 287

原创 JS学习-字符串

JS的字符串用""或''来表示 如果字符串内部既包含'又包含"怎么办?可以用转义字符\来标识:"I \'m \"OK\"!";多行字符串由于多行字符串用\n写起来比较费事,所以最新的ES6标准新增了一种多行字符串的表示方法,用反引号` ... ` 表示:`这是一个多行字符串`;模板字符串3.1 拼接字符串或字符串插值,可以使用+来连接var name = "小明";var age = 20;

2017-08-08 10:27:39 254

原创 JS学习-数据类型

计算机顾名思义就是可以做数学计算的机器,因此,计算机理所当然的可以处理各种数值。但是,计算机能处理的远不止数值,还可以处理文本、图形、音频、视频、网页等各种各样的数据。不同的数据,需要定义不同的数据类型。Number和C语言等大部分语言不同,JS的数值类型不区分整型和浮点型。统一用Number类型表示 NaN:not a number。 Infinity:表示无限大字符串字符串是以单引号或双引号

2017-08-08 09:44:10 279

原创 JS学习-基本语法

前言“好记性不如烂笔头”这句话是很有道理的。总感觉看过之后印象不是很深,还是动动手记一下效果好很多。 详细的一些教程可以参考: w3cschool-JS w3cschool-ECMAScript 此处的学习教程是基于廖雪峰的官方网站 个人仅仅做一些总结和对比语法1.1 JS语法和大部分传统语法类似,每个语句都以;结束,语句块用{...}。但是JS并不强制要求再每个语句结尾加;,浏览器会负责

2017-08-07 13:36:38 325

原创 CSS 内联元素和块级元素内部布局规则

学会了display属性是不是就学会了布局必须了解的基本概念内联元素内部布局规则测试内联元素内部默认布局规则内联元素改变其对齐方式块级元素内部布局规则学会了display属性是不是就学会了布局?  知道了内联元素没有宽高属性、横向布局;知道块级元素具有宽高属性、换行布局。懂得了display强大的自由切换块级元素和内联元素。这样是不是已经布局无敌   结果会是惨遭打脸的!你会发现有些的布

2017-07-11 18:17:25 1828 1

原创 SVN之Cornerstone从trunk、tag、branch到merge

版本管理思想版本管理者(一般是项目经理)首先要创建SVN项目分类 trunk/tags/branches项目的整个生命周期肯定都存放在trunk中。tags文件夹下存放的都是各版本上线后的稳定版本trunk和tags文件夹中项目由版本管理者进行维护;其他开发者只在branches文件夹下进行开发更新,避免直接更改tags和trunk中的代码,防止代码混乱。操作步骤项目管理者创建项目分类文

2017-02-13 18:22:03 4387 1

原创 OC和Swift的桥接

首次使用Markdown编写博客,尚在熟悉中。既然markdown支持HTML,那就暂且用HTML书写,回顾下淡忘的html标签。 首先创建一个swift工程,然后准备一个Swift类RedView和一个OC类BlueView相互桥接互用。 Swift调用OC类 方法一   直接新建一个oc类,如下图:   继续点击,出现

2016-07-25 14:34:41 4030

原创 CSS中<li>标签横向排列出现间距问题

HTML代码块: 公告 规则 论坛 安全 公益 CSS代码块:#tabControl .tab-header ul { background-color: gray; width: 498px; height: 30px;}#tabControl .tab-header li { back

2016-07-02 18:09:09 43467 1

原创 设置系统状态栏样式分析

一、设置样式的方法iOS6 -- iOS9 :[[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent];iOS7 -- iOS9 :- (UIStatusBarStyle)preferredStatusBarStyle{ return UIStatusBarStyleLigh

2016-05-25 14:02:37 1817

转载 block,inline和inline-block概念和区别

总体概念block和inline这两个概念是简略的说法,完整确切的说应该是 block-level elements (块级元素) 和 inline elements (内联元素)。block元素通常被现实为独立的一块,会单独换一行;inline元素则前后不会产生换行,一系列inline元素都在一行内显示,直到该行排满。大体来说HTML元素各有其自身的布局级别(block元素还是inlin

2016-05-23 13:40:00 388

原创 一个工程如何直接引用另一个工程? 如何打包静态库.a? 如何打包静态库.frameWork? .a和.framework的区别?

最近,关于库文件考虑到以上几个问题。害怕以后忘记遂Mark一下。临时记录,尚未整理。首先,声明一下所涉及到的两个重要到概念:1: target dependencies(目标依赖);2:link binary with libraries1、target dependencies(目标依赖):对工程文件编译之前先对依赖目标进行编译。也就是说target dependencies仅仅是对目标

2016-05-04 18:04:14 3461

原创 一天一命令 <cp\find\du>

一、cp :复制     命令格式:cp [-r] source destination             cp file1 file2  把file1的内容复制给file2.             cp file dir 把文件file复制给目录dir。             cp dir/file . 把目录dir下的文件file复制到当前目录下。       

2016-04-07 23:10:00 809

原创 一天一命令 <mkdir\rmdir\rm\mv>

一、mkdir :创建目录               命令格式:mkdir [-p] dirName          mkdir dirName 新建目录                  mkdir -p dirName1/dirName2 创建多级目录(多极目录必须加-p)二、rmdir :删除目录                 命令格式: rmdir dirName

2016-04-06 21:59:38 512

原创 一天一命令 <cd\pwd\cat\more\clear\touch>

一、cd :目录转换(进入目录)。等同于dos下的cd命令。             命令格式:cd dirName二、pwd :显示当前路径             命令格式:pwd三、cat :全部显示文件内容。等同于dos下的type命令。             命令格式:cat fileName四、more :以分行方式查看文件内容。注意和cat区分。   

2016-03-31 23:13:06 720

原创 一天一命令 <ls>

ls:显示文件名。等同于dos下的dir命令。命令格式: ls [option] file/dirName(文件或者目录)option 具体指:1> -l :显示详细信息列表         区域1:文件类型和文件权限         区域2:文件连接数         区域3:文件所有者的名字         区域4:文件用户组的名字         区域5:文件

2016-03-30 23:27:00 657

原创 hidesBottomBarWhenPushed的使用

hidesBottomBarWhenPushed是push一个控制器的时候隐藏所push控制器的bottom barhidesBottomBarWhenPushed只是针对是否隐藏某个控制器的bottom Bar若实现push一个B控制器的时候同时隐藏Bottom bar,hidesBottomBarWhenPushed具体使用:hidesBottomBarWhenPushed有效

2016-02-22 11:33:54 927

原创 iOS7后 导航栏中的 translucent 导致的视图frame的变化

首先--iOS7以后,苹果鼓励全屏布局示例    self.edgesForExtendedLayout =UIRectEdgeNone;    self.navigationController.navigationBar.translucent = YES;edgesForExtendedLayout--是否支持四周布局translucent

2016-02-19 19:39:17 2700

转载 iOS开发学习路径的一些建议

转载来源:http://www.cocoachina.com/ios/20141106/10147.html结合自己情况聊下iOS学习建议,这里不讲大道理,说说具体怎么做。欢迎大家拍砖。1、第一点要求 ,能比较顺畅的阅读官方的文档如果你连官方的文档读起来都非常困难,那你还谈什么提高和进阶,咱们学习iOS的所有权威的资料都来自apple开发者网站,靠逛论坛看看帖子不是出路。 

2016-01-22 13:59:09 563

转载 Xcode基本操作

1.Xcode IDE概览说明:从左到右,依次是“导航窗格(Navigator)->边列(Gutter)->焦点列(Ribbon)->代码编辑窗口(Standard/Primary Editor)”。边列(Gutter):显示行号和断点。焦点列(Ribbon):灰色深度与代码嵌套深度相关:鼠标悬停可突出显示右侧相应代码块(Focus co

2015-12-30 17:01:23 1803

空空如也

空空如也

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

TA关注的人

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