- 博客(41)
- 资源 (13)
- 收藏
- 关注
原创 iOS入门指引系列(一) 无门槛零基础
接上篇iOS入门指引系列(零)介绍了入门iOS开发的三个部分iOS SDK、编程语言objc、编码调试工具xcode这一篇介绍内容如下xcode如何创建第一个iOS项目 如何让你创建的项目运行起来(手机模拟器)xcode创建第一个iOS项目使用苹果提供的IDE工具xcode可以轻松的帮你创建第一个项目,并且可以以第一个项目为模版开始你的iOS开发之旅下载xcode可以通过m...
2020-02-02 00:56:34
413
原创 dispatch_sync 死锁问题解释
讲清这个问题需要理解以下几个基本知识线程是什么? GCD中队列与任务是什么,sync和async方法是什么样的机制?这两个问题参考----线程,GCD,runloop(1)有了1,2两个问题的理解,我们从纯理解的意义上就可以解释主线程调用dispatch_sync到主队列就好理解了。问题代码dispatch_queue_t queue = dispatch_get_mai...
2020-01-30 15:47:57
1118
原创 iOS入门指引系列(零)
俗话说的是,万事开头难. 意思是开了头,再把一件事办下去就没有那么难了.我相信每一个人当想入门一项新技能的时候都有这样的体会吧.特别是现在网络上各式各样的学习资料,文章,这些零星的资料反而让初学者迷失了方向感,增加了入门的难度.如果这个时候有一个经历过这项技能学习过程的人稍微做一下指引,理一下学习的思路,或许可以做到事半功倍的效果.我想结合这些年iOS开发的经验,为想要入门iOS开发的同学做...
2020-01-30 15:40:22
3495
3
原创 ***线程,GCD,runloop
***线程,GCD,runloopint main(){int a=3;return a;}int a = 4;int b = 4;
2017-07-06 12:05:21
419
原创 读SDWebImage库系列(1)-如何保证同一时间请求相同URL时,只进行一次网络请求
在一次面试一个ios职位时遭遇到这样一个问题,当一个tableview中许多cell中的uiimageview请求相同地址的图片时,如何保证对于同一url只进行一次网络请求,从而避免没必要的网络请求以提高运行效率。 对于这个问题,如果对于同一url请求,当任何一次请求没完成保存本地缓存时,其他请求先去查看本地缓存,这个时候是找不到的,所以也会发送网络请求,这样确实存在效率问题。 自己
2017-06-16 00:52:15
2665
原创 IOS对于线程队列的一些理解
第一部分:线程与队列线程是代码执行的路径,队列则是用于保存以及管理任务的,线程负责去队列中取任务进行执行。例如:在主线程调用如下代码dispatch_sync(queue, ^{ task() }); task函数这个任务将会提交到队列queue上,主线程负责去执行这个任务。可以在task函数中log日志查看
2017-03-30 15:59:52
3982
原创 iOS数据库操作安全整理
首先数据库是系统资源,就像我们操作文件一样,所以并发操作时要注意安全在iOS上,只有一个线程能够打开数据库操作,其他线程要操作数据库必须等数据库关闭后才能打开操作。多线程时:每个线程独立打开数据库,操作数据库,操作完后关闭数据库。打开和关闭都比较费时间,而且要手动控制打开关闭锁,在每个线程操作不频率时可用该方法。如果多个线程频繁操作数据库,使用以上方法很容易造成系统崩溃
2016-07-21 10:52:50
3028
转载 iOS开发UI篇—Quartz2D使用(图形上下文栈)
iOS开发UI篇—Quartz2D使用(图形上下文栈)转自:http://www.cnblogs.com/wendingding/p/3782489.html一、qurza2d是怎么将绘图信息和绘图的属性绘制到图形上下文中去的?说明:新建一个项目,自定义一个view类和storyboard关联后,重写该类中的drowrect方法。画线的三个步骤:
2016-06-17 17:04:38
383
转载 windows第一个窗口程序转自windows程序设计王艳平老师编著
转目录: 1.窗口程序 2.分析 注册窗口类别 建立窗口 显示窗口 消息循环 窗口消息处理程序 3.注意事项 窗口程序:#include LRESULT CALLBACK WndProc (HWND, UINT, WP
2016-01-18 00:00:23
1224
转载 sdl显示bmp
#include "SDL.h" int main(int argc, char *argv[]) { // The images SDL_Surface *hello = NULL; SDL_Surface *screen = NULL; // Start SDL SDL_Init(SDL_INIT
2016-01-17 23:25:44
914
转载 利用ffmpeg将H264解码为RGB
转自:http://blog.csdn.net/q339659207/article/details/23435761由于公司买到了一个不提供解码器的设备,我不得已还要做解码的工作。在网上找了一圈,H264解码比较方便的也就是ffmpeg一系列的函数库了,原本设备中也是用这套函数库解码,但厂家不给提供,没办法,只得自己搞了。利用H264解码分为几个步骤:
2016-01-17 23:02:56
4584
转载 ffmpeg最简单的解码保存YUV数据
video的raw data一般都是YUV420p的格式,简单的记录下这个格式的细节,如有不对希望大家能指出。 YUV图像通常有两种格式,一种是packet 还有一种是planar 从字面上就能理解packet的意思就是所有的yuv数据都是一股脑的放在一起,当然 内部的数据还是按照格式要求的,只是从外部来讲是一整个包包含了所有的yuv数据。最长见的YUV格式就是planar格式了
2016-01-17 22:51:58
565
原创 Retain特质属性在MRC中的陷阱以及ARC中对其的规避
Retain特质属性在MRC中的陷阱以及ARC中对其的规避 现在的xcode建立的工程中默认使用arc,要想在你的程序中使用MRC需要在build phases->Compile Sources中找到你的文件在Complie Flags中加入-fno-objc-arc。Retain属性的定义如下@property(nonatomic,retain)NSString* retainP
2015-11-13 14:25:16
1393
原创 关于retain以及copy特质的理解
对于深拷贝和浅拷贝一直是objc中得一个重点和难点这里说一些自己的理解首先讲一下retain,即对receiver的保留,仅仅使其refcount+1以NSString对象为例 在讨论引用计数之前必须声明清楚如NSString*str = @“1234”;这类存储在静态存储区的内存没有引用计数这个概念即refcount对其是没有意义的。如下例子NSString*str
2015-11-13 10:40:09
546
翻译 读effective objective-c 2.0 整理文章 - 11条 理解objc_msgSend的作用
id returnValue = [someObject messageName:para]编译器会把以上消息转发函数转化为id returnValue = objc_msgSend(someObject, @selector(messageName:),para);objc_msgSend函数会依据接收者与选择子的类型来调用适当的方法。为了完成此操作,该方法需要在接收者所属的
2015-10-22 09:40:12
439
翻译 读effective objective-c 2.0 整理文章 - 41条 多用派发队列,少用锁
问题引入:在Objective-C中,如果有两个线程执行同一份代码,那么可能会出现问题传统方案: 用锁来实现同步机制方法一:同步块 @synchronized(self) -(void)synchronizedMethod{@synchronized(self){//safe}}这种方法会根据给定对象,创建一个锁,并等待块中得代码执行完毕
2015-10-21 15:18:04
516
原创 谈谈我的经历以及记录下最近做的事情01
今年6月份从一家待了近4年的美资外包公司出来后,一个月都没有找到合适的工作,最后找到一家国内做视频电话会议的公司从事IOS相关的开发工作。我以前专职做iOS-objc开发3年,其余时间都是在做C++方面的开发,从事的也基本上是一些欧美的软件项目,包括C++和objc我2005年大学毕业一直到09年期间一直从事windows/linux C++开发。09年12月的时候开始做ios-objc的开发
2015-09-30 16:45:43
438
原创 iOS 检测设备旋转状态
在plist中可以设置你的app支持几种方向,设置以后在程序中可以响应到这类方向调整。不过这种方式必须设置支持旋转 并且子controller想要旋转必须它的父controller也必须支持旋转。 在项目开发过程中经常会遇到有些页面要支持横屏可它的父controller不要支持横屏,这种情况很难处理一下这种方式可以一试[[UIDevice currentDevice] begi
2015-07-28 16:48:20
786
转载 分享几个游戏源码
http://my.oschina.net/arthas/blog/100306http://paralaxer.com/cocos2d-x-book/http://ishare.iask.sina.com.cn/f/34273836.htmlhttp://www.eoeandroid.com/forum.php?
2014-03-14 14:13:01
1164
转载 C语言深入学习系列 - 字节对齐&内存管理
用C语言写程序时需要知道是大端模式还是小端模式。 所谓的大端模式,是指数据的低位保存在内存的高地址中,而数据的高位,保存在内存的低地址中;所谓的小端模式,是指数据的低位保存在内存的低地址中,而数据的高位保存在内存的高地址中。 为什么会有大小端模式之分呢?这是因为在计算机系统中,我们是以字节为单位的,每个地址单元都对应着一个字节,一个字节为8bit。但
2011-11-30 14:23:26
1259
转载 exe、dll的进入点,以及main、winmain、dllmain的关系
exe、dll的进入点,以及main、winmain、dllmain的关系静态链接的情况不考虑,因为这种情况就是把所有代码合并到exe中,不需要进入点。进入点就是系统在加载一个可执行代码块(主要是exe和dll)到内存的时候,系统将要调用的起始代码的位置。加载分为启动时加载和运行时加载,这两种说法主要是针对dll的,因为exe加载必然会创建一个新的进程,所以exe加载都是启动时
2011-11-30 14:20:44
3332
原创 objectC 内存管理
介绍objectc中内存管理内存管理是objectc的核心部分,一个好的objectc程序员必须对它的内存管理机制有很好的理解并付诸于代码的实现上。糟糕的内存管理会引起以下两点致命问题1. 无尽的使用内存不进行适当的释放导致内存泄露程序崩溃2. 内存管理不当使程序中引用非法的内存取到非法数据或程序直接崩溃ios开发内存管理这部分内容分成以下几部分来进行阐述一 Obje
2011-11-23 14:08:30
709
原创 objectc 代理协议通知KVO及MVC
协议,就是使用了这个协议后就要按照这个协议来办事,协议要求实现的方法就一定要实现。委托(代理),顾名思义就是委托别人办事,就是当一件事情发生后,自己不处理,让别人来处理。1. 同时用到协议及委托有两个类,一个是控制器类,一个是view类当用户操作view时,需要通知控制器,让控制器去处理一些逻辑时,需要用到委托及协议 controller.h#import "vi
2011-11-23 14:05:30
1914
转载 TCP/IP SOCKET HTTP
网络七层由下往上分别为物理层、数据链路层、网络层、传输层、会话层、表示层和应用层。其中物理层、数据链路层和网络层通常被称作媒体层,是网络工程师所研究的对象;传输层、会话层、表示层和应用层则被称作主机层,是用户所面向和关心的内容。 http协议 对应于应用层 tcp
2011-07-17 20:32:13
585
转载 iphone开发中的签名证书与私钥
代码签名可以用来保证代码的完善并确定代码的开发者。Apple需要所有的iPhone程序在他们运行在开发系统或者上传到apple发布的时候都需要数字签名。另外apple在发布的时候也会添加自己的数字签名。 数字签名和数字身份 Apple需要所有的注册开发人员对自己的iPhone
2011-07-16 21:03:05
1716
原创 关于SOCKET的阻塞非阻塞recv和send
<br />对于recv和send函数的返回完成,实际上并不是将缓冲区数据成功送入网络链路,而只是成功发送到系统缓冲区或者是系统缓冲区有数据了!这个系统缓冲区应该是驱动里分配的缓冲区,NTFS默认大小8k,一般WINDOWS 4K。<br />在发包时候,因为TCP提供的是流服务,导致WINSOCK接口会根据缓冲区和数据包的实际情况自由的对数据包进行组合和分割发送,也就是当客户端连续多次发送包时(<100ms),多个数据包可能会组合在一起进行了发送,也就是出现了"粘连"情况,这样客户一次收数据时
2010-12-24 22:11:00
1993
1
原创 UDP服务器的设计[转]
<br />使用UDP的一些蕴含对于设计和实现服务器会产生影响。通常,客户端的设计和实现比服务器端的要容易一些,这就是我们为什么要讨论服务器的设计,而不是讨论客户端的设计的原因。典型的服务器与操作系统进行交互作用,而且大多数需要同时处理多个客户。<br /> 通常一个客户启动后直接与单个服务器通信,然后就结束了。而对于服务器来说,它启动后处于休眠状态,等待客户请求的到来。对于UDP来说,当客户数据报到达时,服务器苏醒过来,数据报中可能包含来自客户的某种形式的请求消息。<br />
2010-12-24 20:24:00
4438
转载 详谈高性能UDP服务器的开发[转]
详谈高性能UDP服务器的开发<br /><br />上一篇文章我详细介绍了如何开发一款高性能的TCP服务器的网络传输层.本章我将谈谈如何开发一个高性能的UDP服务器的网络层.UDP服务器的网络层开发相对与TCP服务器来说要容易和简单的多,UDP服务器的大致流程为创建一个socket然后将其绑定到完成端口上并投递一定数量的recv操作.当有数据到来时从完成队列中取出数据发送到接收队列中即可。<br /> 测试结果如下:<br /> WindowsXP Professional,
2010-12-23 22:12:00
6703
转载 Socket send函数和recv函数详解以及利用select()函数来进行指定时间的阻塞【转】
<br />int send( SOCKET s, const char FAR *buf, int len, int flags ); <br />不论是客户还是服务器应用程序都用send函数来向TCP连接的另一端发送数据。<br />客户程序一般用send函数向服务器发送请求,而服务器则通常用send函数来向客户程序发送应答。<br />该函数的第一个参数指定发送端套接字描述符;<br />第二个参数指明一个存放应用程序要发送数据的缓冲区;<br />第三个参数指明
2010-12-23 13:41:00
8419
1
转载 内存-大小端对齐
不同的 CPU 有不同的字节序类型 这些字节序是指整数在内存中保存的顺序 这个叫做主机序最常见的有两种1 . Little endian :将低序字节存储在起始地址2 . Big endian: 将高序字节存储在起始地址 LE little-endian最符合人的思维的字节序地址低位存储值的低位地址高位存储值的高位怎么讲是最符合人的思维的字节序,是因为从人的第
2010-12-07 15:01:00
970
原创 Hide or remove keyboard When Click UITextField(UITextView)
We could find the keyboard view When keyboardWillShow-(void) viewDidLoad{ [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardWillShow:) name:UIKeyboardWill
2010-03-26 09:32:00
973
转载 "#ifndef #define #endif"防止头文件被重复包含
2009年11月12日 17:48#include文件的一个不利之处在于一个头文件可能会被多次包含,为了说明这种错误,考虑下面的代码:#include "x.h"#include "x.h"显然,这里文件x.h被包含了两次,没有人会故意编写这样的代码。但是下面的代码:#include "a.h"#include "b.h"看上去没什
2010-03-25 12:38:00
1992
1
转载 类的虚继承
//程序作者:管宁 //站点:www.cndev-lab.com //所有稿件均有版权,如要转载,请务必著名出处和作者 #include using namespace std; class Vehicle { public: Vehicle(int weight = 0)
2010-03-24 17:48:00
623
转载 Carbon 與 Cocoa 介紹
這一陣子在 IRC 上,因為開發 OV 的緣故,經常有機會提到 OS X 程式設計相關的問題。我們經常提及像 Carbon,Cocoa, Objective-C 這類的關鍵詞,也開始有朋友問及,Carbon 是什麼?Cocoa 又是啥?我如果想在 OS X上開發程式,該從哪下手好?這篇文章先回答頭兩個問題:Carbon 跟 Cocoa 是什麼?順便也講講這兩者的差別在哪。簡單地說,
2010-03-24 10:11:00
4978
转载 iphone http send request(two mode)
同步(会阻塞)NSURLConnection 类:+ (NSData *)sendSynchronousRequest:(NSURLRequest *)request returningResponse:(NSURLResponse **)response error:(NSError **)error;异步:(需要实现delegate)NSURLConnection 类:
2010-03-24 10:09:00
1074
转载 invalidate the HTTPS certificate
What happens when you try to connect to an HTTPS webserver which hasan invalid SSL certificate? For example when the hostname of thewebsite is not the same as the one in the SSL certificate.With
2010-03-24 10:06:00
1849
转载 In-App purchase
In-App purchase is a big thing for all the iPhone developers. Notonly it helps to tease users to try and buy but also can help to reducepiracy. This is why you should consider it in your next appl
2010-03-23 13:47:00
2361
转载 SQLite批量插入优化方法
SQLite批量插入优化方法SQLite的数据库本质上来讲就是一个磁盘上的文件,所以一切的数据库操作其实都会转化为对文件的操作,而频繁的文件操作将会是一个很好时的过程,会极大地影响数据库存取的速度。 例如:向数据库中插入100万条数据,在默认的情况下如果仅仅是执行 sqlite3_exec(db, “insert into name values ‘lxkxf
2010-03-23 13:46:00
7113
2
基于FFMPEG的iOS视频播放器
2015-11-25
WINDOWSDRIVER2--WindowsWDM设备驱动程序开发指南 and DDKReferenceCN and MSWDM
2010-03-24
WINDOWSDRIVER1--windows driver wdm usb ps2 过滤驱动 pci中断等等
2010-03-24
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人