自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

听榆大叔的专栏

我的下载分呢,我的下载分呢?

  • 博客(42)
  • 资源 (19)
  • 收藏
  • 关注

原创 仓库太大,clone 后,git pull 老分支成功,最新分支失败

在此记录解决步骤,

2023-09-01 12:13:18 841

原创 微服务一:概述

微服务一:概述微服务是最近几年大热的话题。不过这倒不是这几年才有东西,而是在零几年就有大公司们实施了,不过那时候不叫这个名字。一、微服务是什么所谓微服务,就是大的服务器拆分成各种小的服务器,由各种不同功能的小服务组合成对外完整功能的服务器。为什么需要拆分呢?传统型单服务的问题以前,一个产品,一般对应一个后台服务器。随着功能不断迭代,服务器代码越来越复杂,越来越庞大,问题也越来越多:1...

2020-01-07 09:20:12 179

原创 用 Typescript 写个状态机

有限状态机,是常用的一种编程范式。游戏领域和编译器领域等工作的小伙伴,应该很常用的了。如果不熟悉,那咱们先来看看状态机是什么。状态机假设有这样一个需求在介绍状态机之前,假设有这样一个需求:咱们在开发一款打斗类游戏,游戏里有一个主角,咱们要通过键盘控制主角的行为。主角可以站立、蹲着、跳跃,这些行为的流程如下:总结一下:通过键盘按钮主角的行为;主角的行为包括:站立、蹲着、跳跃;站立(...

2019-11-11 11:52:13 2562 4

原创 HTTPDNS 在 iOS 中的实践

“未找到主机名”,这是很常见的错误。出现这个错误,按理来说,应该也是正常的。但郁闷的是,常常别的应用能正常使用,偏就是自己开发的应用不行,这实在令人头痛。原因目前很多 APP 会用 HTTP/HTTPS 来进行网络交互。APP 会用域名访问接口,正常情况下,如果设备网络畅通的情况下,都是能正常访问到服务器的。但是 DNS 劫持、UDP 不稳定等,者导致经常出现域名无法解析的情况,自然也就无法正常请求

2016-12-20 22:53:32 5538 4

原创 ByteCountFormatter 简介

ByteCountFormatter  介绍一个 Foundation 中不常用的小工具类:ByteCountFormatter。这个类很简单,它就是将字节数格式化成适合的描述(KB、MB、GB 等),还是很方便的。  示例如下:let b1000KB1 = ByteCountFormatter.string(fromByteCount: 1000 * 1024, countStyle: .bina

2016-09-28 22:58:06 1418

原创 iOS 利用 Autolayout 实现 view 间隔自动调整

iOS 利用 Autolayout 实现 view 间隔自动调整标签: Autolayout1、需求  不知道大家是否常有这样的需求:一个界面中,有多个 view,每个 view 的大小由其内容决定。当一个 view 有内容时,下一个 view 与它之间会一个间隔。如果没有内容的话,下一个 view 就会紧挨着它。如下图所示:    [图1]  图1 中,四个 label 的大小是自适应的

2016-07-09 16:13:59 3527

原创 HTTPS 初解

标签(空格分隔): https 基础  在进行 HTTP 通信时,信息可能会监听、服务器或客户端身份伪装等安全问题。HTTPS 则能有效解决这些问题。这里就简单了解下 HTTPS。1、HTTP 存在的问题  HTTP 日常使用极为广泛的协议,它很优秀且方便,但还是存在一些问题,如: - 明文通信,内容可以直接被窃听 - 无法验证报文的完整性,可能被篡改 - 通信方身份不验证,可能遇到假

2016-03-18 23:27:20 811

原创 OC 自动生成分类属性方法

标签(空格分隔): Objective-C runtime iOS 分类 category  分类属性方法自动生成编码全过程。背景  分类,在 iOS 开发中,是常常需要用到的。在分类里添加属性也是常有的事,但分类中无法添加实例变量,编译器也无法为提供分类中属性的 getter 和 setter 方法了。一般而言,需要手动来实现这两个方法,如果只是用来存储变量的话,关联对象很容易做到这一点:@int

2015-12-14 00:43:31 1303

原创 iOS 中的 promise 模式

标签(空格分隔): Promise PromiseKit 异步 Bolts-iOS1、概述  异步编程 App 开发中用得非常频繁,但异步请求后的操作却比较麻烦。Promise 就是解决这一问题的编程模型。其适用于 延迟(deferred) 计算和 异步(asynchronous) 计算。一个 Promise 对象代表着一个还未完成,但预期将来会完成的操作。它并非要替代 GCD 和 NSOperat

2015-11-15 14:43:24 3841

原创 ReactiveCocoa2 源码浅析

ReactiveCocoa2 源码浅析标签(空格分隔): ReactiveCocoa iOS Objective-C  • 开车不需要知道离合器是怎么工作的,但如果知道离合器原理,那么车子可以开得更平稳。  ReactiveCocoa 是一个重型的 FRP 框架,内容十分丰富,它使用了大量内建的 block,这使得其有强大的功能的同时,内部源码也比较复杂。本文研究的版本是2.4.4,小版本间的差别不

2015-08-27 22:16:44 3970

原创 限制 UITextField 输入长度

限制 UITextField 输入长度标签(空格分隔): UITextField  UITextField 是 iOS 中最常用的组件之一。关于它也有各种各样的需求,这些需求是它本身没有提供相应的API的。限制输入框文本长度是常见的需求,UITextField 本身也并没有为此提供API。本文尝试给其加入这个功能。1、通过 delegate 来实现  限制 UITextField 的输入字数,首先想

2015-06-24 18:46:41 2768 3

翻译 响应式编程介绍

响应式编程简介(原文)  你应该对响应式编程这个新事件有点好奇吧,尤其是与之相关的部分框架:Rx、Bacon.js、RAC等等。  在缺乏好的资源的情况下,学习响应式编程成为痛苦。我开始学的时候,做死地找各种教程。结果发现有用的只是极少部分,而且这少部分也只是表面上的东西,对于整个体系结构的理解也起不了多大的作用。直接去看那些库文档同样也理解不了。比如下面这个: Rx.Observable.pr

2015-06-15 17:35:02 22641 5

原创 OC判断对象是否相等

你是否真的了解OC对象相等?标签: objective-c  比较两个对象是否相等是一个常用的功能。==操作符比较的不是对象,而是两个指针本身,一般来说这不是咱们所想要的。要想判断对象是否相等,应该使用 NSObject 协议中声明的isEqual:方法来判断。一般来说,两个类型不同的对象总是不相等的。   如果你已经有过一些 OC 的编码经验的话,你一定自定义过isEqual:方法。那么你是碰到

2015-06-08 22:51:51 5799

原创 Objective-C 给分类添加属性——关联对象

给分类添加“属性”咱们知道,分类中可以添加方法,却无法添加属性。那咱们有其他的方法来实现吗? 先来看看下面这段代码:@interface UIView (nl_Frame)@property (nonatomic, assign) CGFloat nl_width;@end @implementation UIView (nl_Frame)- (void)setNl_width:(CGFlo

2015-06-07 13:59:26 6065 2

原创 NSRunLoop基本原理

iOS 中 的 run loop 浅析run loop解惑  runloop 虽然是与线程想关的重要概念,但 cocoa 中的 runloop 终是用得不多,观相关博文却也未得入门其“why”。所以浅习几日,得一粗陋分享浅文,作为笔记,写下其所以然。有不对或错误的地方,还望指教,不甚感激。   线程在执行完后,会被销毁。为了使线程能一直运行,咱们可以在线程里边弄个运行循环(run l

2015-04-12 00:44:49 3338 8

原创 iOS中的崩溃类型

iOS中的崩溃类型       在这里了解一下XCode用来表示各种崩溃类型的术语,补充一些这方面的各知识。崩溃通常是指操作系统向正在运行的程序发送的信号,所以我们在查看崩溃日志时,常常看到如下错误摘要:Application received signal SIGSEGV。一般来说,常见的崩溃类型有以下几种: 1、        EXC_BAD_ACCESS在访问一个已经释放的对

2015-03-13 17:04:39 5761 2

原创 ReactiveCocoa理解(持续更新中)

引子ReactiveCocoa 是 OC 的一个强大的框架。它的强大之处不仅仅在于提供了很多用于简化工作的方法,更在于它提供了一种思考方式。比如这样的场景:一个登录界面,有用户名文本框、密码框以及登录按钮。只有用户名文本框文本长度大于等于6并且密码框文本长度大于等于6时,登录按钮才能被点击。按照普遍的实现方式是:每当文本框或密码框文本发生变化时,都检查登录按钮此时是否可被点击。这种方法将精力集

2014-10-27 23:24:50 4143 2

原创 autolayout 概述

终于可以完全放弃 iOS5的支持了,等了好久才用上这 autolayout。好吧,虽然这东东已经出现两三年了,不过现在才能用得上,所以现在才学,我是个懒家伙。好记性不如烂笔头,学点记点总是好的。        autolayout 彻底改变了视图而已,将咱们的注意力从 frame、方向等集中到了屏幕上的对象之间的关系上。自动布局简化了布局,加上现在 XCODE 中 IB 的强力支持,可以说是极

2014-10-23 23:00:10 581

转载 宏定义的黑魔法 - 宏菜鸟起飞手册

dr宏定义的黑魔法 - 宏菜鸟起飞手册宏定义在C系开发中可以说占有举足轻重的作用。底层框架自不必说,为了编译优化和方便,以及跨平台能力,宏被大量使用,可以说底层开发离开define将寸步难行。而在更高层级进行开发时,我们会将更多的重心放在业务逻辑上,似乎对宏的使用和依赖并不多。但是使用宏定义的好处是不言自明的,在节省工作量的同时,代码可读性大大增加。如果想成为一个能写出漂亮优雅

2014-10-11 09:34:24 1449 2

原创 iOS中的小知识

1、文件大小差不多是 1000个pb

2014-10-09 17:50:58 864

翻译 ReactiveCocoa基本组件:理解和使用RACCommand

原文地址在这里。本文源码:https://github.com/olegam/RACCommandExample RACCommandRACCommand是ReactiveCocoa的基本组件之一,能节省开发的大部分时间,同时使得iOS/OS X 应用更健壮。       我看到一部分ReactiveCocoa(以下简单RAC)新人并没有完全理解RACCommand,自然也就不

2014-07-09 14:22:20 21129

原创 陇西郡 李字辈

远万高和玉 茂广绍兴隆克承先世德 嗣述永昌荣良谟遗厚福 光大迪新猷善继前人志 诗书启懋修忠孝传家训 网维重本源英贤襄盛治 景运庆升恒博古郁文彩 谦恭益寿康椒蕃祥瑞霭 雍穆裕绵长

2014-05-25 00:35:48 2146

原创 Block 5:Block解析之截获局部变量值

源代码:int main(int argc, const char * argv[]){  int dmy = 256;  int val = 10;  const char *fmt = "val = %d\n";  void (^blk)(void) = ^{printf(fmt, val);};  val = 2;  fmt = "These va

2014-05-04 22:45:14 1182

原创 Block 4:Block实质解析

Block是“带有局部变量值的匿名函数”,但Block究竟是什么呢?     前面所说的Block语法看上去好像很特别,但它实际上是作为极普通的C语言源代码来处理的。通过支持Block的编译器,含有Block语句的源代码转换为一般C语言编译器能够处理的源代码,并作为极为普通的C语言源代码被编译。     这不过是概念上的问题,在实际编译时无法转换成我们能够理解的源代码,但clang

2014-04-16 23:30:39 2839

原创 C++的this,Objective-C的self

C++中定义类的实例方法如下:void MyClass::method(int arg) {  printf(“%p %d\n”, this, arg);}C++编译器将该方法作为C语言函数来处理。void __ZN7MyClass6methodEi(MyClass *this, int arg) {  printf(“%ps %d\n”, this, arg);}

2014-04-15 22:43:05 2570

原创 Block 3:__block说明符

1 截获局部变量值   通过Block语法和Block类型变量的说明,我们已经理解了“带有局部变量值的匿名函数”中的“匿名函数”。而“带有局部变量值”究竟是什么呢?“带有局部变量值”在Blocks中表现为“截获局部变量值”。截获局部变量值的实例如下:int main(int argc, const char * argv[]){  int val = 10;  const

2014-04-13 23:28:34 832

原创 Block 2: Block语法

Block语法     下面详细讲解一下带有局部变量值的匿名函数Block的语法。前面按钮回调例子中使用的Block语法如下:^(int event) { printf(“buttonId:%d event=%d”, i, event);}    实际上,该Block语法使用了省略方式,其完整形式如下:      如上所示,完整形式的Block语法与一般的C语言

2014-04-12 23:49:29 997

原创 Block 1:什么是Blocks

Blocks是C语言的扩充功能。可以用一句话来表示Blocks的扩充功能:带有局部变量的匿名函数。     顾名思义,所谓匿名函数就是不带名称的函数。C语言的标准不允许存在这样的函数。例如以下源代码:int func(int count);     它声明了名称为func的函数。下面的源代码中为了调用该函数,必须使用该函数的名称func。int result = func(10);

2014-04-11 23:00:56 1522

原创 GCD之五:dispatch_barrier_async

在访问数据库或文件时,使用Serial Dispatch Queue可避免数据竞争的问题。    写入处理确实不可与其他的写入处理以及包含读取处理的其他某些处理并行执行。但是如果读取处理只是读取处理并行执行,那么多个并行执行就不会发生问题。    也就是说,为了高效率地进行访问,读取处理追加到Concurrent Dispatch Queue中,写入处理在任一个读取处理没有执行的状态下,追

2014-04-08 22:27:20 1458

原创 GCD 之四:Dispatch Group

在追加到Dispatch Queue中的多个处理全部结束后想执行结束处理,这种情况会经常出现。只使用一个Serial Dispatch Queue时,只要将想执行的处理全部追加到该Serial Dispatch Queue中并在最后追加结束处理,即可实现。但是在使用Concurrent Dispatch Queue时或同时使用多个Dispatch Queue时,源代码就会变得颇为复杂。    

2014-04-07 18:39:59 1992

原创 GCD 之三: Main Dispatch Queue/Global Dispatch Queue

第二种方法是获取系统标准提供的Dispatch Queue。       实际上不用特意生成Dispatch Queue系统也会给我们提供几个。那就是Main Dispatch Queue和Global Dispatch Queue。       Main Dispatch Queue正如其名称中含有的“Main”一样,是在主线程中执行的Dispatch Queue。因为主线程只有1个,所

2014-04-06 22:03:05 2917

原创 GCD之二:dispatch_queue_create

第一种方法是通过GCD的API生成Dispatch Queue。通过dispatch_queue_create函数可生成Dispatch Queue。以下源代码生成了Serial Dispatch Queue。dispatch_queue_t mySerialDispatchQueue = dispatch_queue_create(“com.example.gcd.MySerialDis

2014-04-05 15:04:11 11846 1

原创 GCD 之一: Dispatch Queue

Grand Central Dispatch(GCD)是异步执行任务的技术之一。一般将应用程序中记述的线程管理用的代码在系统级中实现。开发者只需要定义想执行的任务并追加到适当的Dispatch Queue中,GCD就能生成必要的线程并计划执行任务。由于线程管理是作为系统的一部分来实现的,因此可统一管理,也可执行任务,这样就比以前的线程更有效率。1、Dispatch Queue

2014-04-04 23:44:13 1018

翻译 ReactiveCocoa 入门指导

原文地址:http://www.teehanlax.com/blog/getting-started-with-reactivecocoa/       在先前的文章中,介绍一了ReactiveCocoa概念,ReactiveCocoa是Objective-C中用于声明式编程的类库。接下来在这里会介绍一些ReactiveCocoa中的模式,讨论一些最佳实践,并指出一些常见的陷阱。R

2014-03-30 00:45:31 5961

翻译 iOS上的ReactiveCocoa响应式编程

注:这是稍微面向iOS开发者们的文章。Objective-C是一门基于C的高级编程语言。然后随着计算机运算能力和高级编程语言艺术设计不断发展,Objective-C看起来有些过时了。Objective-C和C是命令式编程语言,程序员得按计算机执行顺序写好一行行语句,产生的行为就是执行这些指令。如果开发者写的语句和顺序都没有错,那么产生的行为就应该能满足项目的需要。然而,

2014-03-27 14:05:45 2541

原创 iOS相关文章和开源库收集

1、 iOS屏幕尺寸和一些开源库 http://www.taoge.me/2、 用户引导库:Introduction Tutorial View3、开源中国社区4、最受欢迎的IOS开源库

2013-05-14 22:18:18 856

转载 翻译:零基础学习iOS开发流程——从注册账号到提交应用(Part 1)

http://iposei.com/2012/06/23/translate-how-to-submit-your-app-to-apple-from-no-account-to-app-store-part-1/

2013-05-11 13:19:31 924

转载 三个星期从0开始 制作IOS游戏并提交上架

http://www.cnblogs.com/zc22/archive/2012/12/05/2803103.html准备设备:一台macbook air。我香港买的,花了7k多。用起来绝对的爽。苹果的开发者账号,当时我让爸传真汇款的,700多。挺好奇,美国竟然可以不问我信用卡密码直接划款了,如果随便搞那会怎样?? 学习阶段:无论你学习什么,选好一本书,从头看到

2013-05-11 11:35:26 695

原创 HDU 1236 标准水题

<br />排序搞错了,想当然的从后面排到前面,应该是从前面排到后面才是,唉,人老啦<br />#include <iostream>#include <string>#include <algorithm>using namespace std;struct People{ string number; int mark;};bool cmp(const People &e1,const People &e2){ int i,len=e1.number.leng

2010-10-02 14:42:00 516

原创 C++string类常用函数默认分类

C++string类常用函数默认分类 string类的构造函数:string(const char *s); //用c字符串s初始化string(int n,char c); //用n个字符c初始化此外,string类还支持默认构造函数和复制构造函数,如string s1;string s2="hello";都是正确的写法。当构造的string太长而无法表达时会抛出length_error异常 string类的字符操作:const char &

2010-08-17 00:40:00 759 1

函数式 Swift

请支持正版

2016-09-13

software-architecture-patterns

软件架构的几种模式,页数不多,内容却值得思考。

2015-10-20

iOS城市选择器

iOS城市选择器,自己备用

2015-08-13

iOS UICollectionView, 2nd Edition

iOS UICollectionView第2版,英文版。 想全面学习UICollectionView么? 看这本书,你能知道UICollectionView的优美设计,从而定义你自己想要的视图。

2015-07-12

Functional Reactive Programming on iOS

Functional Reactive Programming on iOS。讲解ReactiveCocoa的来龙去脉。在使用RAC时,最好能先看看这本英文书,它详细讲解了FP里的设计原因,及各函数的使用方法

2015-06-29

iOS 7 by Tutorials

iOS 7 by Tutorials英文版。raywenderlich出品,深入 iOS7学习必备书籍。

2015-06-27

ios核心动画编程指南

官方文档的翻译之作,想对动画编辑有所了解的朋友,此章节必读。

2013-10-29

深入浅出MFC配书盘

深入浅出MFC配书盘与此书配着使用,有里面的所有的源码,可以下载

2010-04-11

Windows网络编程第二版源码

Windows网络编程第二版源码,里面有此书的所有的源码,配书使用

2010-04-11

《C语言精彩编程百例》源代码.rar

《C语言精彩编程百例》的源代码,都在这里,是C的格式,可以直接打开看,可以运行

2010-04-11

遗传算法原理与应用介绍

遗传算法原理与应用,可以用一个基本的概念,很少有下载呢!

2010-04-11

多段图源码(C++版)

用C++写的多段图的源码,包括前路和后路

2010-04-11

Visual C++网络通信代码.rar

Visual C++网络通信代码,配书代码

2009-11-24

JAVA画板中的保存程序

一个普通的JAVA画图还能够创建文件用来积存程序,运用到几个有关的包,有关如何处理的方法

2009-11-24

空空如也

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

TA关注的人

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