- 博客(68)
- 资源 (11)
- 收藏
- 关注
原创 [Cocoa]_[画直线、矩形、文字]
总结Cocoa下画直线、矩形、文字的方法,在界面开发种经常会遇到。1.画直线,有两种方法。(1)把直线看成是一个高度较小的的矩形 //(1)直线的本质是一个高度较小的矩形 NSRect rect5 = NSMakeRect(50, 70, 350, 5); NSBezierPath *path1 = [NSBezierPath bezierPathWithRect
2015-10-13 15:39:16 4266
原创 [Cocoa]_[总结异步调用函数的方法]
总结异步调用函数的方法。 1.dispatch_async #import int main(int argc, const char * argv[]){ @autoreleasepool { // insert code here... dispatch_async(dispatch_get_global_que
2015-10-10 16:51:19 1185
原创 [Objective-c]_[NSUserDefaults]_[基本使用]
NSUserDefaults是一个轻量级本地数据存储,如果只是保存少量的数据,像用户名、密码这些建议用NSUserDefaults。 NSUserDefault支持的数据格式:NSNumber、NSInteger、Float、Double、NSString、NSDate、NSArray、NSDictionary,BOOL类型。不能加入一个自定义类对象。 第一次运行写入数据并存储:
2015-10-09 18:45:04 1630
原创 [Objective-c]_[块语法的使用及应用场景]
objective-c的块语法。1.块语法的声明和定义声明:void (^blockReturningVoidWithVoidArgument)(void);int (^blockReturningIntWithIntAndCharArguments)(int, char);void (^arrayOfTenBlocksReturningVoidWithIntArgumen
2015-10-09 15:33:27 659
原创 [Cocoa]_[NSScrollView]_[界面切换]
总结通过一个类来管理各个界面之间的切换,这样程序用到哪些界面,之间的逻辑关系都会比较清晰。 我的例子是创建3个带.xib文件的NSViewController,在主类中通过NSScrollView类型的变量来切换不同的界面,比如在主类窗口里面拖动一个ScrollView并绑定到该变量中,我这里主类用默认的AppDelegate,还要把主类的指针传递给各个界面。下面是例子代码:view
2015-09-30 15:09:20 1893
原创 [windows]_[避免线程死锁]
线程死锁: 是指两个或两个以上的进程在执行过程中,因争夺资源而造成的一种互相等待的现象,若无外力作用,它们都将无法推进下去。线程死锁的原因:(1)忘记释放锁void ThreadFun1() { EnterCriticalSection(); if(/* error happens */) return; Leav
2015-09-28 00:17:33 707
原创 [windows]_[线程同步的方法]
windows下一般有四种线程同步的方法:(1)事件(2)信号量(3)互斥量(4)临界区下面将展示各自的用法(1)事件#include #include int g = 0;HANDLE events;DWORD WINAPI ThreadFun1(PVOID pParam){ while (g < 100) { WaitForSingle
2015-09-21 00:09:03 561 1
原创 [objective_[getter器和setter器的使用]
在objective-c中有@property和@synthesize,可以自动生成相应的getter和setter函数,给我们节约了不少代码和时间。当然,@property有各种参数,下面就总结下基本用法。1.简单使用在头文件和实现文件中添加这两句代码就会得到getter和setter器//头文件@property int age;//实现文件@synthesize
2015-09-01 23:32:11 421
原创 [Cocoa]_[获取系统时间]
//获取当前时间NSDate *now = [NSDate date];NSLog(@”now date is: %@”, now);NSCalendar *calendar = [NSCalendar currentCalendar];NSUInteger unitFlags = NSYearCalendarUnit | NSMonthCalendarUnit | NSDayCalend
2015-08-31 23:51:01 988
原创 [objective-c]_[performSelector的使用]
Objective-C中调用函数的方法是“消息传递”,这个和普通的函数调用的区别是,你可以随时对一个对象传递任何消息,而不需要在编译的时候声明这些方法。所以Objective-C可以在runtime的时候传递人和消息。首先介绍两个方法 SEL和@selector根据AppleObjective-C Runtime Reference官方文档这个传递消息的函数就是 id objc_msg
2015-08-31 23:45:01 588
转载 [开发工具]_[mac下svn的命令]
因为mac下的svn并不像windows的那么方便,基本都是在控制台上使用,所以这里总结一些常用命令。1、将文件checkout到本地目录123svn checkout path(path是服务器上的目录)例如:svn checkout svn://192.168.1.1/pro/domain简写:svn
2015-08-31 23:17:58 516
原创 [Objective-c]_[NSString的基本使用]
NSString是objective-c的字符串,这里总结下NSString的常用方法。//1. 串初始化NSString *str1 = [NSString stringWithString:@"test"];NSLog(@"str1 is %@",str1);//2.快速创建一个字符串 NSString *str2 = [[NSString alloc]initWithStri
2015-08-31 23:04:48 344
原创 NSOutlineView的简单使用
NSOutlineView是Cocoa的树形控件,这里介绍它的简单使用。首先在Xib文件里面拖出控件,然后建立一个委托,把DataSourceDelegate和Delegate绑定该委托。并且在该委托中加入必须的函数,这样数据才能导入进去。
2015-07-31 23:04:48 5558
原创 [Cocoa]_[界面切换]
一、首先在xib文件里面拖一个Scroll View 到窗口中然后在AppDelegate里面IBOulet 一个NSViewController变量并绑定刚刚的SCroll View.二、再创建两个带xib文件、继承于NSViewController的类三、在主xib界面中添加两个按钮,添加事件响应 点击按钮的时候做切换的操作,切换代码如下: [[scrollVie
2015-07-31 22:25:53 922
原创 [Cocoa]_[简单画图]
总结一些Cocoa画图的常用代码。points(NSPoint)同直角坐标系一样原点在左下角结构typedef struct _NSPoint{float x;float y;}NSPoint;定义:NSPoint thePoint;初始化:thePoint=NSMakePoint(0,0);Rects(NSRec
2015-07-31 09:13:50 1082
原创 从C++到objective-c
学习objective一段时间后做出一定总结,这里主要列举objective的特性还有和C++的不同点。一、objective的特性1.函数- (int) foo : (int) a : (char) b {}+ (int) foo : (int) a : (char) b {}这是objective-c的函数的声明形式-表示一个普通的成员函数+表示静态函数,不需要实体就可访问o
2015-07-31 00:03:09 709
原创 用C++实现查找指定文件夹下的类型文件名
在开发中我们会遇到要在指定文件夹下打开exe文件,我这里就介绍怎么去实现这种方法。这里我们用到win32的函数,WIN32_FIND_DATAW这个结构体来实现查找typedef struct _WIN32_FIND_DATA {DWORD dwFileAttributes; //文件属性FILETIME ftCreationTime; // 文件创建时间F
2015-06-30 10:10:03 2203
原创 VC下minizip+ZLib 解压文件
一、zlib开源库zlib是应用最广泛的压缩与解压缩zip文件的免费开源库,提供了数据压缩与解压缩的函式库。zlib中最关键的函数有以下两个:(1)int compress(Bytef *dest, uLongf *destLen, const Bytef *source, uLong sourceLen); (2)int uncompress(Bytef
2015-06-28 22:24:58 3569
原创 [界面设计模式]_[观察者模式]
一、观察者模式 观察者模式是一种一对多的模式,最贴切的解释就是杂志订阅,每次更新杂志的时候都会通知订阅杂志的人,所以观察者模式要有三个功能: 1.加入观察者到一个表中 2.从表中删除观察者 3.发送通知给表中所有的观察者 4.更新指定消息的内容二、windows控制台下的例子 #include #include
2015-06-09 11:10:28 482
原创 Windows环境下编译objective-c
一、在Windows环境下运行GNUstep1.登陆这个网站http://ftpmain.gnustep.org/pub/gnustep/binaries/windows/2.下载三个文件gnustep-msys-system-0.30.0-setup.exegnustep-core-0.31.0-setup.exegnustep-devel-1.4.0-setup.exe
2015-06-09 10:40:42 520
原创 用文件的读写和string作为临时存储区复制图片文件
读写用_wfopen(),所以都出来的是双字节的,所以涉及到字节转换,把都出来的数据转换成单字节然后再存在String类对象里面,写入新的文件时要重新转换成双字节再写入。代码如下:#include #include #include using namespace std;void Wchar_tToString(string& szDst, wchar_t *wchar){
2015-05-31 23:44:48 552
原创 ANSIC和Unicode之间的转换
一、简介 在VC开发中我们经常遇到字节转换的问题,因为现在开发基本都要用到Unicode,而C的函数都是ANSIC码的,如果我们在VC开发中需要用到C的函数就必须要处理这个问题,ANSIC码是单字节的,而Unicode是双字节的,本质上市单双字节的转换。二、ANSIC不同的国家和地区制定了不同的标准,由此产生了 GB2312、GBK、Big5、Shift_JIS 等各自的编码标
2015-05-31 21:05:58 796
原创 Java的String和StringBuffer的区别及应用场景
一、StringString类不是一个原始类型,可以通过它的定义分析。String类的定义:private final char value[];通过String类的定义我们可以看出一旦创建了这个对象,那它的值是不能改变的,对于已存在的String对象的修改实质上是创建一个新的对象,然后把新对象的值存进去。二、StringBufferStringBuffer是一个可变对象,
2015-05-31 20:35:31 890
原创 C++中string类所有函数的使用介绍
一、string类的简介string 是C++中的字符串。 字符串对象是一种特殊类型的容器,专门设计来操作的字符序列。 不像传统的c-strings,只是在数组中的一个字符序列,我们称之为字符数组,而C + +字符串对象属于一个类,这个类有很多内置的特点,在操作方式,更直观,另外还有很多有用的成员函数。二、string类函数的使用首先,使用string前必须包含头文件,
2015-05-22 14:00:25 785
原创 指针与数组
#include #include using namespace std;void main(){#define DIM2#ifdef DIM2 int sz[2][3] = { 1, 2, 3, 4, 5, 6 }; int *pa = sz[0]; //{1, 2, 3} int *pb = sz[1]; //{4, 5, 6} int *pc[2] =
2015-04-26 22:49:34 435
原创 C语言深入理解float
先说说32 位的 float型一个正的浮点数 X, 在计算机中表示为: X = a * 2e 这里 e 代表指数, a 代表尾数, 在 计算机内部, 他们都是用二进制表示的. 其中 a 用二进制的科学表示法表示, 由于科学表示法第一位总是1 (0除外) , 所以第一位略去不计. e 表示的时候, 因为要表示出负数, 所以 e要加上127 , 实际运
2015-04-26 22:38:39 1242
原创 C语言如何防止野指针
一、野指针首先,我们先介绍下什么是野指针吧,野指针指指向一个已删除的对象或未申请访问受限内存区域的指针。与空指针不同,野指针无法通过简单地判断是否为 NULL 避免,而只能通过养成良好的编程习惯来尽力减少。对野指针进行操作很容易造成程序错误。二、出现野指针的原因1.指针变量未初始化任何指针变量刚被创建时不会自动成为NULL指针,它的缺省值是随机的,它会乱指一气。所以,指针变量在创建的同时应当被初始
2015-04-12 21:13:04 1935
原创 C语言五大内存分区介绍
C语言分为五大内存分区:1、栈区(stack): —由编译器自动分配释放,存放函数的参数值,局部变量的值等。2、堆区(heap): 一般由程序员分配释放,若程序员不释放,程序结束时由系统释放。3、全局区(静态区,static): 全局变量和静态变量的存储是放在一块的,初始化的全局变量和静态变量在一块区域,未初始化的全局变量和未初始化的静态变量在相邻的另一块区域。程序结束后由系统释放。
2015-04-12 20:25:25 9355
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人