- 博客(57)
- 资源 (1)
- 收藏
- 关注
转载 localhost与127.0.0.1的概念和工作原理之不同
有时候我们在调试程序的时候,会出现一些莫名其妙匪夷所思的奇怪问题,localhost不能访问但127.0.0.1可以访问的问题就是其中之一。我估计大多数人都不会去想localhost到底与127.0.0.1有什么不同,就比如我,有时候用http://localhost/来访问本地服务器网页,有时则用http://127.0.0.1/来...
2018-11-23 13:17:02
610
1
原创 用Python写一个简单的爬虫功能
首页,我们要爬虫的网页是百度图片的首页,把首页显示的10张图片地址爬下来,然后下载至本地。在Safari浏览器打开地址:http://image.baidu.com,右键点击其中一张图片,点击“检查元素”,我们就可以定位至img标签,找到属性class=”img_pic_layer horizontal”,在本页面搜索匹配img_pic_layer horizontal,刚好有10项匹配上,说明我们
2017-01-24 16:23:20
1032
原创 首次使用Python
1.基本操作我先假设你用的是Mac,Mac都预装了python2.x, 查看Mac当前python的版本命令:python输入Python呼出Python交互界面,Ctrl-D退出。2.安装pip然后呢,你有了python没用,你得有库。没库怎么干活?怎么安装库呢?python界也有个类似于我们iOS开发里 cocoapods 的东西,这个东西叫做pip。pip和 cocoapods 用起来的命令
2017-01-24 15:37:04
605
转载 是时候搭建起自己的云盘服务了
1.前言微盘挂了,360倒了,百度云盘也立了Flag。能让我们在云端储存分享文件的服务越来越少了。买一堆移动硬盘既不方便也不能解决实际需求。而事实上,你其实可以选择搭建只属于自己的至尊私享云盘服务!ownCloud 是一个开源免费的云端文件储存分享平台,它支持包括网页、PC客户端、移动App在内的所有终端使用。你可以搭建一个给自己用,也可以搭建好之后同朋友和家人分享。2.首先你需要有一台自己的服务器
2017-01-17 16:42:26
13479
1
转载 JSPatch简介 – 动态更新iOS APP
1.用途是否有过这样的经历:新版本上线后发现有个严重的bug,可能会导致crash率激增,可能会使网络请求无法发出,这时能做的只是赶紧修复bug然后提交等待漫长的AppStore审核,再盼望用户快点升级,付出巨大的人力和时间成本,才能完成此次bug的修复。 使用JSPatch可以解决这样的问题,只需在项目中引入JSPatch,就可以在发现bug时下发JS脚本补丁,替换原生方法,无需更新APP即时修
2017-01-17 16:41:34
400
转载 iOS中block实现的底层探究
今天主要讨论的是C语言的扩展特性block。该特性是Apple为C、C++、Objective-C增加的扩展,让这些语言可以用类Lambda表达式的语法来创建闭包。1.从语法上看如何修改外部变量首先看如下代码:int i = 1024; void(^blk)(void) = ^{ i = 0; printf(“%d\n”, i); }; blk(); 会得到如下错误:main.m:14:29
2017-01-17 16:39:57
398
转载 Wget用法
wget是一个从网络上自动下载文件的自由工具。它支持HTTP,HTTPS和FTP协议,可以使用HTTP代理. 所谓的自动下载是指,wget可以在用户退出系统的之后在后台执行。这意味这你可以登录系统,启动一个wget下载任务,然后退出系统,wget将在后台执行直到任务完成,相对于其它大部分浏览器在下载大量数据时需要用户一直的参与,这省去了极大的麻烦。 wget 可以跟踪HTML页面上的链接依次下载来创
2017-01-06 00:04:41
396
转载 在Mac OS中安装 wget
先从Apple Store下载Xcode,然后安装Xcode; 接着安装Homebrew包管理,类似于Ubuntu下的apt-get, 终端下输入:ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"11待Home-brew安装完成后,最后在终端下输入:brew inst
2017-01-06 00:02:59
838
转载 Mac下用brew搭建PHP(LNMP/LAMP)开发环境
转自http://yansu.org/2013/12/11/lamp-in-mac.htmlMac下搭建lamp开发环境很容易,有xampp和mamp现成的集成环境。但是集成环境对于经常需要自定义一些配置的开发者来说会非常麻烦,而且Mac本身自带apache和php,在brew的帮助下非常容易手动搭建,可控性很高Brewbrew对于mac,就像apt-get对于ubuntu,安装软件的好帮手,
2017-01-04 15:03:34
494
转载 iOS库 .a与.framework区别
一、什么是库?库是共享程序代码的方式,一般分为静态库和动态库。二、静态库与动态库的区别?静态库:链接时完整地拷贝至可执行文件中,被多次使用就有多份冗余拷贝。动态库:链接时不复制,程序运行时由系统动态加载到内存,供程序调用,系统只加载一次,多个程序共用,节省内存。三、iOS里静态库形式?.a和.framework四、iOS里动态库形式?
2016-11-23 11:18:13
293
原创 Cocoapods的版本升级
1.更新gem,国内需切换 gem source$ sudo gem update --system切换 gem source$ gem sources --add https://ruby.taobao.org/ --remove https://rubygems.org/$ gem sources -l*** CURRENT SOURCES***https://ruby.taobao.or
2016-11-22 14:45:03
475
转载 IOS开发中NSRunloop跟NSTimer的问题
在Windows时代,大家肯定对SendMessage,PostMessage,GetMessage有所了解,这些都是windows中的消息处理函数,那对应在ios中是什么呢,其实就是NSRunloop这个东西。在ios中,所有消息都会被添加到NSRunloop中,分为‘input source’跟'timer source'种,并在循环中检查是不是有事件需要发生,如果需要那么就调用相应的函数处理
2016-09-28 20:09:38
369
转载 (类簇)NSString,NSArray,NSNumber等类的继承问题
问题引入,我想给NSString类扩展一些新的方法。在Objective-C中可以有两种方法,一是继承,二是类别。本文先不讨论类别,我们用继承的方法试一下:[c] view plain copy print?@interface StringEx : NSString - (void)myFunc; @end @implementation StringEx - (void)myFu
2016-09-19 17:59:08
1307
转载 iOS 类别和扩展(Category和Extension)
分类(Category) 分类能够做到的事情主要是:即使在你不知道一个类的源码情况下,向这个类添加扩展的方法。 此外,分类能够保证你的实现类和其他的文件区分开。 1 #import “UIViewController.h”2 @interface UIViewController(CustomView)3 -(void)extMethod;4 @end 使用分类为类添加方法(Add M
2016-09-12 10:31:37
580
转载 IOS开发之协议和代理
【iOS开发技术分享】协议与代理【iOS开发技术分享】协议与代理一、理解协议与代理协议:协议是一个方法签名的列表,在其中可以定义若干个方法。根据配置,遵守该协议的类会去实现这个协议中规定的若干个方法。代理:代理是一个概念,很难用一个名词去定义(如我们可以说协议其实就是一个方法列表)。它更像是一种关系,我要做某一个事情,但我自己不想去做这件事,我委托其他人帮我去做这件事。这个时候,这位其他人就是我的
2016-09-11 11:25:50
371
转载 Weex入门与进阶指南
原文地址:https://yq.aliyun.com/articles/57554前言相比较于React Native的“Learn once, write anywhere”,Weex的口号是“Write once, run everywhere”。考虑到React Native比较任性的向下兼容性,我们也引入了Weex做一番了解。本文主要分为以下几个部分:构建Hello World程序;集成
2016-09-07 23:25:04
1332
转载 如何上传本地代码到github上
第一步:建立git仓库cd到你的本地项目根目录下,执行git命令,此命令会在当前目录下创建一个.git文件夹。git init第二步:将项目的所有文件添加到仓库中git add .这个命令会把当前路径下的所有文件,添加到待上传的文件列表中。如果想添加某个特定的文件,只需把.换成特定的文件名即可第三步:将add的文件commit到仓库git commit -m "注释语句"第四步:去github上创建
2016-09-02 21:35:08
967
转载 iOS中block实现的底层探究2
这是一篇技术分享,并且之前发表在酷壳上,http://coolshell.cn/articles/8309.html,现在发布到自己的博客上。下文是直接从酷客复制过来的,这里偷了个懒,没有再次对格式做很仔细的整理,只有稍微整理。汗。这里主要讨论的是C语言的扩展特性block。该特性是Apple为C、C++、Objective-C增加的扩展,让这些语言可以用类Lambda表达式的语法来创建闭包。前段
2016-09-02 16:53:36
608
转载 iOS中block实现的底层探究
[0. Brief introduction of block]Block是iOS4.0+ 和Mac OS X 10.6+ 引进的对C语言的扩展,用来实现匿名函数的特性。用维基百科的话来说,Block是Apple Inc.为C、C++以及Objective-C添加的特性,使得这些语言可以用类lambda表达式的语法来创建闭包。用Apple文档的话来说,A block is an anonymo
2016-09-02 16:05:51
725
原创 浅谈FMDB事务批量更新操作耗时
当谈到“事务”时,我想到了sqlite本身是支持事务操作的,FMDB作为sqlite的上层封装也对事务进行了支持,那么说了这么多给不了解“事务”这个词的同学解释一下吧:通常一次 sqlite3_exec 就是一次事务,假如你要对数据库中的Stutent表插入新数据,那么该事务的具体过程是:开始新事物->插入数据->提交事务,那么当我们要往该表内插入500条数据,如果按常规操作处理就要执行500次“开
2016-08-27 10:49:37
2741
转载 svn 命令行下常用的几个命令
1、将文件checkout到本地目录 svn checkout path(path是服务器上的目录) 例如:svn checkout svn://192.168.1.1/pro/domain 简写:svn co 2、往版本库中添加新的文件 svn add file 例如:svn add test.php(添加test.php,文件夹也行) svn ad
2016-08-19 16:20:08
386
原创 FMDB的一些特别使用
1.用途是否有过这样的经历:新版本上线后发现有个严重的bug,可能会导致crash率激增,可能会使网络请求无法发出,这时能做的只是赶紧修复bug然后提交等待漫长的AppStore审核,再盼望用户快点升级,付出巨大的人力和时间成本,才能完成此次bug的修复。 使用JSPatch可以解决这样的问题,只需在项目中引入JSPatch,就可以在发现bug时下发JS脚本补丁,替换原生方法,无需更新APP即时修
2016-08-11 15:36:34
1207
转载 ios技能图谱
一. 编程语言。1.Object-C 2.C/C++ 3.JavaScript 4.Swift二. 操作系统。1.iOS 2.Mac OSX 3.tvOS 4.watchOS 5.Linux 常用命令三. 开发基础。1.UI控件 2.Storyboard & Xib 3.Core Data & Sqlite 4.Core Graphics 5.
2016-08-10 16:12:22
476
原创 MacDown语法小结
#1.测试字体h1##1.1测试字体,测试字体h2本段为正文本段为正文本段为正文本段为正文本段为正文本段为正文本段为正文本段为正文**(加粗字体)**本段为正文本段为正文本段为正文本段为正文本段为正文,[本页跳转](#testId)、[本页跳转百度](https://www.baidu.com)。 2.下载链接###3.线框```
2016-07-12 14:17:34
5801
转载 为什么要用git而不是svn
从使用者角度分析:1.svn下载源代码慢。在git中一个几个G的版本库,一般一二十分钟就能下载完毕,但是在svn中要一个小时左右;2.svn随时都得要与服务器交互,无论是查看log,还是查看以往的版本你必须跟服务器相连,并且速度奇慢务必,而git做这些几乎是瞬间的事;3.各个分支之间的补丁迁移麻烦,在git上只要两三个命令就可以完事的(其实一个命令,因为需要查找与分支切换),但是在sv
2016-07-11 16:52:45
1983
转载 Git和SVN之间的五个基本区别
如果你在读这篇文章,说明你跟大多数开发者一样对GIT感兴趣,如果你还没有机会来试一试GIT,我想现在你就要了解它了。GIT不仅仅是个版本控制系统,它也是个内容管理系统(CMS),工作管理系统等。如果你是一个具有使用SVN背景的人,你需要做一定的思想转换,来适应GIT提供的一些概念和特征。所以,这篇文章的主要目的就是通过介绍GIT能做什么、它和SVN在深层次上究竟有什么不同来帮助你认识它。
2016-07-11 16:51:48
351
转载 Git command
1. 基于特定分支创建分支名1). 本地 git checkout -b 新建分支名 基于的分支2). 远程 git checkout -b 新建分支名 origin/基于的分支2. 创建远程分支git checkout -b 分支名git push origin 分支3. 删除本地分支 git branch -D 分支4. 删除远程分支git pus
2016-07-11 16:24:24
299
转载 NSURLSession学习笔记(三)Download Task
NSURLSession的Download Task用于完成下载任务,本文介绍如何创建断点续传的下载任务和后台下载任务。我们直接从分析Demo入手:故事板如下:只有一个View Controller,用于创建各种下载任务,并将下载后的图片显示到视图上,下载过程中会更新下载进度。头文件代码如下:[objc] view plaincopy#import <UIKit/UIKit.h> @
2016-07-11 10:33:01
366
转载 NSURLSession学习笔记(二)Session Task
Session Task分为三种Data Task,Upload Task,Download Task。毫无疑问,Session Task是整个NSURLSession架构的核心目标。下面写了一个简单的Demo来初步使用下三种任务对象。这里使用的是convenience methods,并没有定制session和使用协议,都是采用completionHandler作为回调动作。故事板内容为:第一种
2016-07-09 17:41:54
366
转载 NSURLSession学习笔记(一)简介
一、URL Session的基本概念1.三种工作模式:默认会话模式(default):工作模式类似于原来的NSURLConnection,使用的是基于磁盘缓存的持久化策略,使用用户keychain中保存的证书进行认证授权。瞬时会话模式(ephemeral):该模式不使用磁盘保存任何数据。所有和会话相关的caches,证书,cookies等都被保存在RAM中,因此当程序使会话无效,这些缓存的数据就会被
2016-07-09 17:40:19
360
转载 AFNetworking 3.0 版本使用
AFNetworking 3.0 版本使用在Xcode7.0之后,苹果废弃了NSURLConnection方法,数据请求使用NSURLSession,作为网络请求类第三方库使用量最大的AFN也及时的更新的新的版本——AFN 3.0版本。新的版本的里废弃了基于NSURLConnection封装的AFHTTPRequestOperationManager,转而使用基于NSURLSession封装的AFH
2016-07-09 16:27:22
449
转载 如何快速转载优快云中的博客
前言 对于喜欢逛优快云的人来说,看别人的博客确实能够对自己有不小的提高,有时候看到特别好的博客想转载下载,但是不能一个字一个字的敲了,这时候我们就想快速转载别人的博客,把别人的博客移到自己的空间里面,当然有人会说我们可以收藏博客啊,就不需要转载,(⊙o⊙)… 也对。。实现 因为我自己当初想转载的时候却不知道该怎么转载,所以学会了之后就把方法写出来,帮助那些想转载却不知道该怎么转载的人(大神勿笑
2016-07-09 15:59:29
42406
67
转载 从 NSURLConnection 到 NSURLSession
iOS 7 和 Mac OS X 10.9 Mavericks 中一个显著的变化就是对 Foundation URL 加载系统的彻底重构。现在已经有人在深入苹果的网络层基础架构的地方做研究了,所以我想是时候来分享一些对于我对于这些新的 API 的看法和心得了,新的 API 将如何影响我们编写程序,以及它们对于 API 设计理念的影响。NSURLConnection 作为 Core
2016-07-07 00:12:41
323
原创 HTTPS绕过证书
写一个NSURLRequest的类别,放到任何一个.m文件就行@implementation NSURLRequest (NSURLRequestWithIgnoreSSL)+ (BOOL)allowsAnyHTTPSCertificateForHost:(NSString *)host{ return YES;}@end
2016-06-07 16:36:39
710
转载 Xcode里-ObjC, -all_load, -force_load
最近在做一个项目的时候,需要使用到一个第三方库,这个库的使用向导里面特别说明,在添加完该库后,需要在Xcode的Build Settings下Other Linker Flags里面加入-ObjC标志,这个标志以前没使用过,所以我就专门研究了一下它的作用。 之所以使用该标志,和Objective-C的一个重要特性:类别(category)有关。根据这里的解释,Unix的标准静态库实
2016-02-29 19:18:17
423
转载 TCP和HTTP
1、TCP连接手机能够使用联网功能是因为手机底层实现了TCP/IP协议,可以使手机终端通过无线网络建立TCP连接。TCP协议可以对上层网络提供接口,使上层网络数据的传输建立在“无差别”的网络之上。建立起一个TCP连接需要经过“三次握手”:第一次握手:客户端发送syn包(syn=j)到服务器,并进入SYN_SEND状态,等待服务器确认;第二次握手:服务器收到syn包,
2014-12-16 11:37:57
877
转载 runtime 获取类的成员变量
首先,我们定义一个类@interface Person : NSObject{ CGFloat height;}@property (nonatomic, copy) NSString *name;@property (nonatomic, strong) NSNumber *age;@property (nonatomic, assign) int no;@en
2014-11-26 15:01:44
539
原创 iOS开发debug跟release版本log屏蔽方法
简单介绍以下几个宏:1) __VA_ARGS__ 是一个可变参数的宏,这个可变参数的宏是新的C99规范中新增的,目前似乎只有gcc支持(VC6.0的编译器不支持)。宏前面加上##的作用在于,当可变参数的个数为0时,这里的##起到把前面多余的","去掉,否则会编译出错。2) __FILE__ 宏在预编译时会替换成当前的源文件名3) __LINE__宏在预编译时会替换成当前的行号4) __FU
2014-11-21 15:37:26
655
转载 mac 命令行里 编译 链接 出现xcrun: error: active developer path
mac cc 编译出现xcrun: error: active developer path ("/Volumes/Xcode/Xcode.app/Contents/Developer") does not exist, use xcode-select to change在命令行里输入sudo xcode-select -switch /Applications/Xcode.a
2014-11-19 00:06:12
681
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人