- 博客(35)
- 收藏
- 关注
原创 iOS开发之多线程编程 (2)
上篇纪录了NSThread进行多线程编程的使用方法和注意事项。这次看一下,NSOperation和NSOperationQueue。平时使用NSOperation可以通过两种方式:(1)使用系统提供的NSInvocationOperation和NSBlockOperation。(2)继承NSOperaion并override它的main方法。(这个类概念上是一个abstract的)。之
2015-03-29 07:44:33
614
原创 iOS开发之多线程编程 (1)
1.什么是线程同步此处的同步不是一起的意思,而是协同的意思。假设线程A,B,C,A完成某件事之后,通知B去做什么,B又会通知C什么时候做什么。还有比如我们有一个变量不允许多个线程一起访问那么就可以采用同步的方式。2.资源竞争--死锁程序中多个线程访问统一资源,这叫资源竞争。而由于资源竞争不当,可能导致线程相互等待而无法进行下去的情况,被称之为,死锁。3.线程通信
2015-03-28 16:09:39
556
原创 iOS开发之Block(4)
(1)块总能修改实例变量之前的文章中写了块可以截获当前环境中的局部变量,如果想要修改就要使用 __block 说明符。但是针对类实例方法中的块,可以直接修改实例变量。Worker.h#import @interface Worker : NSObject{ NSString * _wId;}-(id)initWihtId:(NSString *)wId;-(v
2015-03-28 08:03:29
597
原创 iOS开发之GCD(7)API dispatch_barrier_async
牛逼闪闪的栅栏。有这么一种情况,你的程序目录下有一个文件,在多线程编程环境下,需要读取和写入。(1)并发着读写?这样读的时候也许在写,那么可能读到与内容不符的数据,可能因为非法访问导致程序异常终止。(2)serial读写?浪费资源,效率低下。(3)serail写,并发读,并且两者之前有区分。可以自己通过group,设置优先级来实现。繁琐。牛逼闪闪的栅栏出现了
2015-03-17 15:25:50
592
原创 iOS开发之GCD(6)API Dispatch Group
首先看一段代码: dispatch_queue_t globalDispatchQueue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0); dispatch_async(globalDispatchQueue, ^{ NSLog(@"1");
2015-03-17 15:12:19
560
原创 iOS开发之GCD(5)API dispatch_after
针对情况:某个任务我想要在n秒后执行,这种情况可以中dispatch——after来处理。 double delayInSeconds = 2.0; dispatch_time_t popTime = dispatch_time(DISPATCH_TIME_NOW, (int64_t)(delayInSeconds * NSEC_PER_SEC)); dis
2015-03-17 14:47:35
546
原创 iOS开发之GCD(4)API dispatch_set_target_queue
作用1:改变Disaptch Queue的优先级该方法可用于变更自己创建的Dispatch Queue的优先级。dispatch_queue_t myDispatchQueue = dispatch_queue_create("com.faterman.gcd_demo.myDispatchQueue", NULL); dispatch_queue_t globalDisp
2015-03-17 14:39:15
736
原创 iOS开发之GCD(3)Main Dispatch Queue/Global Dispatch Queue
上一篇提到了如何创建dispatch queue,这篇记录一下如何获取系统标准提供的dispatch queue。系统提供的Dispahch queue包括 Main Dispatch Queue和Global Dispatch QueueMain Dispatch Queue:这是在主线程中执行的Dispatch Queue,是一个Serial Dispatch Queue。追加到这
2015-03-17 13:54:48
840
原创 iOS开发之GCD(2)API Dispatch Queue
生成dispatch queue的API:(1)生成Serial Dispatch Queue(一个线程,追加的任务按照追加顺序一次执行) dispatch_queue_t mySerialDispatchQueue = dispatch_queue_create("com.faterman.gcd_demo_mySerialDispatchQueue", NULL);
2015-03-17 11:29:31
501
原创 iOS开发之GCD(1)初探
概念:GCD即Grand Central Dispatch,它是异步执行任务的技术之一。一般将应用程序中技术的线程管理用的代码在系统层级上实现。开发者只需要将定义好的任务追加到dispatch queue中,GCD就能生成必要的线程并按计划执行任务。由于线程管理是作为系统的一部分来实现的,因此可以统一管理,也可执行任务,相较于以前的多线程管理更加有效率。实例: d
2015-03-17 11:10:59
536
原创 Java中的包和访问权限
1.什么是java中的软件包java中的pakage,作用是区分类的文件夹,类似于.net下的命名空间。(1)将类放置到一个包当中,前面需要用到关键字packageexample:pakage com.faterman(2)命令行编译的时候需要用 -d 参数 ,这个参数的作用是根据包名生成相应的文件夹。 之后加目录,加待编译文件。(3)一个类的全名是“包
2014-12-03 17:16:28
884
原创 Java中的抽象类和抽象函数
(1)抽象函数的语法特征只有函数定义,没有函数体的函数。example:abstract void fun();作用:抽象出来,用来被子类override。可以抽象出来的统一方法,但是实现起来会有若干种不同的方式。(2)抽象类的语法特征作为一个类中,如果它拥有抽象函数,那么这个类也就必须被定义为抽象类。example:abstract
2014-12-03 15:08:24
1065
原创 C#学习笔记之初识C#
在这里要了解四个内容:(1).NET Framework的功能和它所包含的内容。(2).NET应用程序的工作原理。(3)C#的概念和与.NET Framework的关系(4)用C#创建应用程序的工具(VS 或者VCE)一、.NETFramework的定义和特点 tips:如何产看.NET Framework的版本?系统盘:\windows\microso
2014-08-05 17:40:09
591
原创 Swift学习笔记之类型安全和推导
类型安全和类型推导 Swift是一门类型安全的语言。一门这样的语言真正在乎我在编写过程所用到的值的类型,并清晰的理解他们。如果你的代码中有一个值应该是String类型的,那么就不应该不小心将它转化位Int类型。 正是由于这种类型安全性,Swift是在编译你的代码的过程中执行类型检查的。它还会用错误标示出那些不匹配的变量和值。这使得我们能够在开发过程中尽早的发现问题,并且解决它。
2014-06-11 23:32:39
668
原创 Swift学习笔记之浮点型
浮点数 顾名思义,就是个有小数部分的数。比如,3.14159。 浮点类型能够表示比整型更加宽的值范围。能够储存相比Int而言更大或者更小的数值。Swift提供两种有符号的数值类型: (1) Double,它用来代表64位的浮点数。我们使用它来表示特别大或者特别精确的数值。(2) Float,代表32位的浮点数。当我们不需要64位那么大的精度的时候,通常都会使用Flo
2014-06-11 23:09:57
823
原创 Swift 学习笔记之基础
Swift的基础 Swift是一门用于iOS和OS X平台上app开发的一门新的编程语言。尽管他是新兴的语言,Swift中的许多部分会让有过C和Objective-C开发经验的人感到熟悉。 Swift对于C和Objective-C中的基本类型都提供了自己实现的版本。这其中包括:(1) Int (integers)(2) Double 和 Float (浮点数)(3)
2014-06-11 22:55:37
518
转载 数组和链表
相同点:二者都属于一种数据结构从逻辑结构来看1. 数组必须事先定义固定的长度(元素个数),不能适应数据动态地增减的情况。当数据增加时,可能超出原先定义的元素个数;当数据减少时,造成内存浪费;数组可以根据下标直接存取。2. 链表动态地进行存储分配,可以适应数据动态地增减的情况,且可以方便地插入、删除数据项。(数组中插入、删除数据项时,需要移动其它数据项,非常繁琐)链表必须根据next
2014-05-19 15:47:29
812
原创 Android开发之颜色总结
红色和粉红色,以及它们的16进制代码。#990033 #CC6699 #FF6699 #FF3366 #993366 #CC0066 #CC0033 #FF0066 #FF0033 ..#CC3399.. #FF3399 #FF9999
2014-05-19 10:38:55
858
原创 c++学习笔记之变量和基本类型(2)
const 限定符 什么是magic number,不能直接根据程序代码推断出意义的数字。 const 修饰的对象、变量会被转化成常量,防止被修改 const 修饰对象默认为局部变量,全局定义的话,只可以在定义文件下使用,或者用extern显示声明 引用(reference) 就是对象的另一个名字,在实际的调用中,主要最为函数的形参。不分配
2014-05-18 23:35:03
610
原创 编程那些事之HTTP协议
1)什么是HTTP这是一个属于应用层面的面向对象的协议,UDP和TCP的是运输层协议。2)HTTP的特点(1)支持C/S模式(2)简单快速,客户发送请求时候,只需要发送请求的方法和路径。请求的方法常用到的有GET、HEAD、POST.(3)灵活,允许传输任意类型的数据对象。正在传输的类型由Content-Type加以标记。(4)无连接,限制每次连接只处理一个请求。处理完
2014-05-16 17:19:14
547
原创 c++学习笔记之变量和基本类型(1)
1)c++的内置数据类型 这里面,整型、字符和布尔值合称为整型。 notes:计算机以位序列来存储数据,每一位上是0或者1。让存储具有结构的最基本方法是用块(chunk)处理数据。 通常是这样换算的:8位的 chunk--- 1个字节 --- 4个字节---1个word 每一个字节对应一个地址。 要让一个chunk的存储,即一个内存地址有意义,就
2014-05-15 22:26:26
865
原创 c++学习笔记之初窥c++
一直都想静下心学习c++,自己比较懒,总是提不上日程,今天决定把这个事情当作一件内驱的事情去完成。希望我能坚持下去,不请假,不旷课。
2014-05-14 22:04:45
747
原创 高级语言类型划分
计算机不能直接理解高级语言,只能直接理解机器语言,所以必须要把高级语言翻译成机器语言,计算机才能值型高级语言编写的程序。 翻译的方式有两种,一个是编译,一个是解释。两种方式只是翻译的时间不同。编译型语言写的程序执行之前,需要一个专门的编译过程,把程序编译成为机器语言的文件,比如exe文件,以后要运行的话就不用重新翻译了,直接使用编译的结果就行了(exe文件),因为翻译只做了一次,运行时不需
2014-04-29 18:42:21
1568
转载 公钥和私钥
原文请查看: 公钥和私钥就是俗称的不对称加密方式,是从以前的对称加密(使用用户名与密码)方式的提高。用电子邮件的方式说明一下原理。 使用公钥与私钥的目的就是实现安全的电子邮件,必须实现如下目的: 1. 我发送给你的内容必须加密,在邮件的传输过程中不能被别人看到。 2. 必须保证是我发送的邮件,不是别人冒充我的。 要达到这样的目标必
2014-04-03 16:55:10
502
原创 iOS开发之单例
iOS开发中的单例模式(singleton)是指一个类只有一个实例,单例模式确保一个类只有一个实例,自行实例化并且向整个系统提供这个实例。我们把按照上述标准实现的类称之为单例类。 1. 常见的单例 有几个Cocoa框架类是按照这种模式实现的,他们包括:NSFileManager、NSWorkspace、UIApplication、UIAccelerometer等。
2014-03-27 15:03:41
787
转载 堆内存栈内存详解
堆:顺序随意栈:先进后出堆和栈的区别一、预备知识—程序的内存分配一个由c/C++编译的程序占用的内存分为以下几个部分1、栈区(stack)— 由编译器自动分配释放,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈2、堆区(heap) — 一般由程序员分配释放,若程序员不释放,程序结束时可能由OS回收。注意它与数据结构中的堆是两回事,分配方式倒是类似于链表,呵
2014-03-25 15:39:47
498
转载 iOS开发之Cocoa是什么
原文地址:http://blog.youkuaiyun.com/wzzvictory/article/details/8630828某次上班路上,同事问我:什么是Cocoa?当时楞了一下,对呀,什么是Cocoa?做了将近一年的iPhone应用开发,成天跟它打交道,竟然还不知道这是个什么东西。。。一、什么是Cocoa①Cocoa的来源早些年,苹果公司启动了Coplan
2014-03-25 15:31:35
1420
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人