- 博客(61)
- 资源 (3)
- 收藏
- 关注
原创 cocoaPods安装与使用
一.安装:1.在gitHub上下载cocoaPods。2.在Terminator(也就是终端)中输入以下命令:sudo gem install cocoapods二.使用:(配置podfile+安装命令)场景1:利用CocoaPods,在项目中导入AFNetworking类库AFNetworking类库在GitHub地址是:https://github.com/AF
2014-07-15 18:59:13
282
原创 c++第十四章-(类型强转换)
类型强转换有2种。class Company{public: Company(std::string theName,std::string theProduct); virtual void printInfo(); protected: std::string name; std::string product;};
2014-07-15 18:59:09
259
原创 c++第十二章 -(动态管理内存、动态数组和函数返回动态内存)
1.静态内存,编译时申请,存储在栈,如基本数据类型。2.动态内存由一些没有名字,只有地址的内存块构成。那些内存块是在程序运行期间动态分配的。它们来自一个标准c++库替你管理的“大池子”(内存池),从内存池申请一些内存需要用new语句,他将根据你提供的数据类型分配一块大小适当的内存。你不必担心内存块的尺寸问题。3.注意在用完内存块之后,应该用delete语句把它返还内存池。另外作为一种附加的
2014-07-15 18:59:06
382
原创 c++第十章-(多继承与虚继承)
多继承class Person{public: Person(std::string theName); void introduce(); protected: std::string name;};class Teacher : public Person{public: Teacher(
2014-07-15 18:59:02
268
原创 c++第七章-(静态属性和静态方法)
1.静态属性和静态方法静态方法的调用,ClassName::mothodName();class Pet{public: Pet(std::string theName); ~Pet(); static int getCount();//公开的静态方法protected: std::string name;
2014-07-15 18:58:58
270
原创 c++第八章-(虚方法与抽象方法)
1.虚方法(Virsual Method)虚方法是继承的,一旦在基类里把某个方法声明为虚方法,在子类里就不可能再把它声明为一个非虚方法了。在基类里把所有的方法都声明为虚方法会让最终生成的可执行代码的速度变得稍微慢一些,但好处是可以一劳永逸地确保程序的行为符合你的预期。析构器都是虚方法!从编译的角度看,他们只是普通的方法。如果他们不是虚方法,编译器就会根据他们在编译时的类型而调用
2014-07-15 18:58:56
373
原创 c++第九章-(运算符重载)
一些规则1.c++不允许用户自己定义新的运算符,只能对已有的c++运算符进行重载。2.除了五个运算符不允许重载外,其他运算符允许重载:.成员访问运算符*成员指针访问运算符::与运算符sizeof尺寸运算符?:条件运算符3.重载运算符必须和用户定义的自定义类型的对象一起使用。(也就是说,参数不能全部都是c++的标准类型,这样约定是为了防止用户修改用于标准类型结
2014-07-15 18:58:54
239
原创 c++第五章-(类与对象、构造器和析构器)
1.构造器与结构体的区别:构造器多支持方法。其作用有申请内存,初始化变量。在c++中构造器没有返回值:语法Class Name(); 2.析构器的作用:释放内存。在c++中析构器没有返回值:语法~ClassName(); class Animal{public: std::string mouth; std::string name;
2014-07-15 18:58:52
332
原创 c++第六章-(友元)
1.友元(激情四射的机油)友元关系:是不同类间的一种特殊关系,这种特殊关系允许友元类访问对方的protected和private方法和属性。class Lovers{public: Lovers(std::string theName); void kiss(Lovers *lover); void ask(Lovers *lover,std::s
2014-07-15 18:58:50
340
原创 Form-based File Upload in HTML(RFC-1867)
1. RootViewController.m#import "RootViewController.h"#define URL @"http://localhost:8080/TestOne/upload3.jsp"@implementation RootViewController- (void)viewDidLoad{ [super vi
2014-07-15 18:58:45
426
原创 跳出双层for循环
1 switch (a) { case 1: { }break; case 4: { for (int i=0;i2;i++) { for (int
2014-07-15 18:58:41
728
原创 ios调试技巧
自动预编译(针对全工程)Config.h在逗号和__VA_ARGS__之间的双井号,除了拼接前后文本之外,还有一个功能,那就是如果后方文本为空,那么它会将前面一个逗号吃掉。//网络接口部分,get\post路径//查三个点与__VA_ARGS__关系,自定义NSLog#ifdef DEBUG#define DMLog(...) \NSLog(@"%s %@"
2014-07-15 18:58:37
337
原创 plist文件读写
使用场景,通常用在读不变的数据的plist文件,如地名,城市需求1、用plist文件初始化一个数组,并输出数组中的元素。2、分别用同步和异步从网上下载图片存到本地。使用异步的时候,显示下载进度。#import @interface AppDelegate : UIResponder { long long totalLenth; long lon
2014-07-15 18:58:33
432
原创 同步/异步网络请求
字符串转为数据:[target dataUsingEncoding:];数据转为字符串:[[NSString alloc]initWithData:encoding:];响应状态:[NSHTTPURLResponse localizedStringForStatusCode:];异步post开子线程写1.HTTP请求方法GET请求POST请求这2种请求方法都要大写字母。2.区别G
2014-07-15 18:58:31
380
原创 类目添加变量
转自http://blog.youkuaiyun.com/leonpengweicn/article/details/8226981UIView+DHStyleManager.h#import #include #include @interface UIView (DHStyleManager)@property(nonatomic,copy)NSString *st
2014-07-15 18:58:27
317
原创 删除重复字符
需求:1、为可变字符串类添加一个检测是不是有重复字母的方法:例如:@“abccd”调用这个函数后变成@”abcd”;2、给学员定义一个“私有”方法:判断学员是不是有时间。定义一个协议:服务员和学员的协议,服务员给学员送餐。如果学员忙,就让服务员送餐。1:NSMutableString+RemoveRep.h#import @interface NSMutable
2014-07-15 18:58:22
286
原创 静态连接库
本文学习地址(转自):http://blog.sina.com.cn/s/blog_9693f61a0101dgwc.html参考:http://blog.youkuaiyun.com/lizhongfu2013/article/details/12648633#1536434-tsina-1-73509-66a1f5d8f89e9ad52626f6f40fdeadaa http://www.cn
2014-07-15 18:58:20
305
原创 沙盒机制(sandBox)
一、每个iOS应用SDK都被限制在“沙盒”中,“沙盒”相当于一个加了仅主人可见权限的文件夹,苹果对沙盒有以下几条限制。 (1)、应用程序可以在自己的沙盒里运作,但是不能访问任何其他应用程序的沙盒。 (2)、应用程序间不能共享数据(通过网络共享),沙盒里的文件不能被复制到其他应用程序文件夹中,也不能把其他应用程序文件夹中的文件复制到沙盒里。 (3)、苹果禁止任何读、写沙
2014-07-15 18:58:16
383
原创 简单地址簿?
AddressCard.h#import @interface AddressCard : NSObject{ NSString *_name; NSString *_eMail;}@property(nonatomic,copy)NSString *name,*eMail;//-(void)setName:(NSString *)aName;
2014-07-15 18:58:12
515
原创 浅拷贝、深拷贝
一.不可变拷贝与可变拷贝1.系统对象(集合、字符串、二进制数据)的不可变和可变拷贝:copy方法:对对象不可变拷贝,返回1个不可变拷贝。mutableCopy方法:对对象可变拷贝,返回1个可变对象。2.自定义类的不可变拷贝和可变拷贝:对对象copy方法操作需实现协议的-(id)copyWithZone:方法,不然程序会蹦。对对象mutableCopy方法操作需实
2014-07-15 18:58:08
291
原创 NSFileManager、NSFileHandle
NSFileSManager:目录文件管理#import "AppDelegate.h"#define ERROR(a) if(a){NSLog(@"%@",a);exit(-1);}#define PATH @"/Users/huen/Desktop/NSManage"@implementation AppDelegate NSError *error =
2014-07-15 18:58:03
350
原创 NSDate、NSCalendar、NSDateFormatter
AppDelegate.m NSDate *now1 = [[NSDate alloc]init]; NSDate *now2 = [NSDate date]; NSLog(@"%@",now1); NSLog(@"%@",now2); //追加时间 NSDate *beforeAnHour = [now1 dateByAddingT
2014-07-15 18:58:01
250
原创 归档
1.流程:中介:NSMutableData(必须是新对象,里面不能有数据)存档-》编码-》写入路径。读取路径-》解档-》解码。2. 可以 对集合、NSData、对象属性归档(写到**.xml本地文件)。3.对象属性的"编码解码(类似kvc)":实现NSCoding协议的2个方法,存档、读取路径时自动调用。-(void)encodeWithCoder:(NSCoder
2014-07-15 18:57:59
275
原创 类目、延展、协议
@class 类名; //编译时只有这个类(不包括该类的变量、方法),加快编译。常用于复合对象和循环依赖问题中。#import、#include和@class的区别:http://blog.sina.com.cn/s/blog_71715bf80101a8t8.htmlid _delegate;//代理(实现协议的对象)。类目、延展、协议都是针对方法。----------------
2014-07-15 18:57:55
338
原创 动态类型
静态类型在编译的时候就能被识别出来。动态类型就编译器编译的时候是不能被识别的,要等到运行时(run time),即程序运行的时候才会根据语境来识别。SEL实质是整形1.SEL是一个返回方法名的类型,能得到方法名.2.selector 有2重含义:在源代码中代表向对象发送消息的方法名称。在编译后它代表了方法名称被编译后一个统一的标识。3._cmd当前的方法。NSL
2014-07-15 18:57:53
281
原创 kvc、kvo、通知
KVC(NSKeyValueCoding)键值编码1.定义:间接访问对象属性(用于字符串表征)的机制,而不是直接通过调用访问器或点语法去访问对象的属性。2.KVC把对象属性编码成相应字符串,通过字符串设置访问属性。(等价于将属性变成key和value的形式,类似于字典,注意不要混淆成字典的方法)3.当类里面没有定义属性或不知道类里面是什么属性的时候使用KVC。4.通过KVC可以访问
2014-07-15 18:57:49
285
原创 字符串、集合补充
1.数组与字符间转换componentsSeparatedByString:将字符串以x分割成数组componentsJoinedByString:将数组以x拼接为字符串2.排序Description:按描述条件(“一般字符对象”或对象的属性)排序.注意可变排序方法和不可排序方法的是否有返还值. NSString *str = @"123-456-789-000"
2014-07-15 18:57:45
232
原创 OC中实现可变参数
通过哨兵参数实现,相当于nil.1.c语言中#import #import int addemUp(int firstNum,...){ va_list args;//指向参数的指针 int sum = firstNum; int number; va_start(args, firstNum);//firstNum是
2014-07-15 18:57:42
336
原创 集合
集合:用来存储对象的容器集合中不可变的类都是可变的类的父类。子类功能更强大,有父类的功能和自身的功能。集合都是以nil结束。集合中只有数组有序。字典与set都是散列存储(hash),查找快。arrayWithContentsOfFIle:arrayWithContentsOfURL:如果文件存的是字符串,读取出来的也是字符串。如果文件存的是数组,读取出来的也是数组。如果文件
2014-07-15 18:57:38
227
原创 OC字符串
1.#import比#include的优点:避免重复引用同一.h头文件。2.计算机读取字符串的方式:起始位置location、起始到结束的长度length。3.url分为:文件路径、网络路径(地址)。4.初始化中:实例方法都是以init开头。类方法以类名开头(如:string、array、dictionary、set)。5.容量不可变:带返回值,产生新内存。6.容量可变:操作同
2014-07-15 18:57:34
282
原创 设计6大原则
单一责任原则: 每个类对应着1种责任。里氏替换原则:尽量不要重载或者重写父类的方法(虚方法除外)。面向接口原则:将各低层的类抽象出接口编程,让该接口去与其他类发生关系。(细节依赖抽象)接口隔离原则:不要建立强大的接口,应为各类建立专用的接口。最少知道原则:只与你直接的朋友通信,避免和陌生人通信。开闭原则:用抽象基类构建框架,用子类实现扩展细节。思维导图转自:http://w
2014-07-15 18:57:30
925
原创 设计原则之最少知道原则
只与你直接的朋友通信,避免和陌生人通信。 定义:一个对象应该对其他对象保持最少的了解。问题由来:类与类之间的关系越密切,耦合度越大,当一个类发生改变时,对另一个类的影响也越大。解决方案:尽量降低类与类之间的耦合。通俗的来讲,就是一个类对自己依赖的类知道的越少越好。也就是说,对于被依赖的类来说,无论逻辑多么复杂,都尽量地的将逻辑封装在类的内部,对外除了提供的public方法,
2014-07-15 18:57:28
577
原创 外观模式(手动内存)
Login.h@interface Login : NSObject-(void)isLogin;@endLogin.m#import "Login.h"@implementation Login-(void)isLogin{ NSLog(@"it is login");}@endBrowse.h@interface
2014-07-15 18:57:26
264
原创 手动内存
为什么要内存管理?因为内存一直被占用的话,内存最终会不够用。内存管理好处,1G可以运行3G应用,只要使用时不超过1G,及时释放的话。一.oc中采用“引用计数”(retainCount)方式管理对象所占内存(内存有指针指向的概念)。alloc为对象分配内存。dealloc为对象释放所占内存,不能手动调用。使用alloc、new对象时,并将其引用计数器设为1,并拥有对象所有权。
2014-07-15 18:57:21
180
原创 多态练习
需求:修改游戏相关类 将怪物类和英雄类提取公共部分,并定义成父类。 修改游戏,使用多态完善怪物、英雄的攻击。Role.h@interface Role : NSObject{ int _hp; int _oriHp; CGPoint _currentLoc; CGPoint _oriLoc; int _attack; in
2014-07-15 18:57:19
421
原创 Block语法
转:http://www.cnblogs.com/Logen/p/3340825.htmlBlock语法是IOS4.0+引进的,类似于函数指针的语法。Block最大的特征作用:Block可以在函数中声明、实现。它对局部变量只读。block要使用外面的变量的话必须声明__block或static 修饰变量,改为可读写。Block可以作另一个Block函数的参数(用作回调)。或函数
2014-07-15 18:57:15
288
原创 设计原则之接口隔离原则
不建立庞大的接口(即不建立太多虚方法的类),应为各类建立专用的接口。 定义:客户端不应该依赖它不需要的接口;一个类对另一个类的依赖应该建立在最小的接口上。问题由来:类A通过接口I依赖类B,类C通过接口I依赖类D,如果接口I对于类A和类B来说不是最小接口,则类B和类D必须去实现他们不需要的方法。解决方案:将臃肿的接口I拆分为独立的几个接口,类A和类C分别与他们需要的接口建立依赖关
2014-07-15 18:57:11
547
原创 多态
继承1.在Oc中每个类对象最开始的位置都会有一个isa指针,该指针指向一块内存区域,分发表中先找本类,再找父类方法. 2. self在实例方法中表示指向当前对象指针,在类方法中需要[self class]。用“_下划线”访问没调用get set方法,加self.后实际上调用了其成员的get set方法。1.多态:建立在继承之上,同一类型对象对同一方法呈现不同的实现(方法)状态。(即
2014-07-15 18:57:09
170
原创 设计模式中类的6种关系
纵向关系: 继承(泛化):子类is a 父类。鸟和动物实现:唐老鸭和说话 横向关系:强弱程度依次为:组合>聚合>关联>依赖依赖: 依赖:使用关系(工具)。代码中实现依赖关系时,通常将一个类的对象作为另一个类的作方法参数、方法中的局部变量、或者静态方法调用。单向。动物和水关联:结构关系(来往)。代码中实现关联关系时,通常将一个类的对象作为另一个类的属性。单向、双向
2014-07-15 18:57:05
197
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人