自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

王 杰的专栏

记录自己成长路上的那些点滴、那些青葱岁月

  • 博客(22)
  • 收藏
  • 关注

原创 OC基础-protocol协议

内存管理--protocol1. 作用:用来声明一大堆方法,但是不能声明成员变量2. 只要某个类遵守了这个协议,就相当于拥有了这个协议里所有的方法声明(可以在类的.m文件就可以去实现这些方法)3. 父类遵守某个协议就代表子类也遵守4. : 是继承,5. NSObject是一个基类,所有的类都遵守这个基类;同样也有一个基协议,也叫NSObject,所有的协议都要遵守这个协议;

2014-09-30 19:15:36 826

原创 OC基础-内存管理-block类型

内存管理--block数据类型1. block的作用:block可以封装一段代码,可以在任何时候执行(在程序运行时保存一段代码,而函数不行,函数要事先编写好)2. block的标志:^3. block跟函数很像    1> 保存一段代码    2> 可以有返回值    3> 可以有形参(可以接收参数)    4> 调用方式一样4. 定义block变量void

2014-09-30 19:08:30 851

原创 OC基础-内存管理-ARC+weak

内存管理--ARC(automatic reference counting)1. ARC是编译器的一个特性(编译器检测到有retain/alloc 等 这些关键字,就会自动的加入相应的release/autorelease等 )2. ARC的判断准则:只要没有强指针指向对象,就会释放对象(即使有弱指针指向对象,该对象也会被回收/销毁)3. ARC特点:    1> 不允许调用

2014-09-30 19:07:10 718

原创 OC基础-内存管理小结(手动)

一 计数器的基本操作1. retain : 计数器+12. release : 计数器-13. retainCount : 获得对象当前的计数器值二 set方法的内存管理1. set方法的实现- (void)setCar:(Car *)car{    if(_car != car)    {        [_car release];  

2014-09-30 19:05:11 634

原创 OC基础-内存管理-循环retain+autorelease

内存管理--循环retain:循环引用(类与类之间的关系,你引用我,我引用你)1. 涉及到循环retain的问题时,在某类的.h文件中不能用import导入被引用类头文件的形式,可以用@class关键字来声明所要使用的类(被引用类),要注意的是@class只是声明(告诉编译器这是一个类),而没有导入该类的成员变量,方法的声明(就是说不知道这个类里都有什么,需要用到的时候,可以在该类的.m文件中

2014-09-30 19:03:31 862

原创 OC基础-内存管理-@property以及它的参数

内存管理--set方法-2(用新对象代替旧对象时,就好比是一个人原来有辆250码的车(旧对象),然后要换一辆3000码的车(新对象))1. 旧对象与新对象不是同一个对象时:当一个对象换了当前它所使用的对象的时候,就要让 被使用的旧对象release一次。方法是在set方法中让旧对象release(就是在换对象的时候让被换掉的旧对象release一次,被使用的新对象retain一次)2.

2014-09-30 18:58:16 724

原创 OC基础-内存管理-引用计数器+set方法

内存管理--引用计数器1. 内存中分为五大区域,其中两个是栈和堆。栈存放局部变量,堆存放对象等动态产生的变量,当变量的作用域失效后,栈里的变量系统自动回收,堆不是。2. 每个对象内部都有自己的引用计数器:表示有多少人在用这个对象(引用器占4个字节)。对象被创建的时候计数器默认是1,当计数器减为0时,对象被回收,只要不是0就不会被回收,除非整个程序退出。3. 操作对象的计数器    

2014-09-30 18:52:42 1240

原创 OC基础-类的本质+description+SEL

类的本质1. 类本身也是对象,是个Class类型的对象,简称类对象;而类(类对象)所创建的对象叫做实例对象,它所属的类型是创建它的那个类(注意的是:Class本身带有 * )2. 内存中每个类只加载一次(一份)    Class c = [p class];    // p为Person类的一个对象  此时c是Person类的地址(返回一个类的地址,所以c也可以创建一个Person

2014-09-30 18:51:20 770

原创 OC基础-id+构造方法+自定义构造方法+分类Category

id类型1. 是一个万能指针,可以指向/操作任何一个OC对象2. id类型的变量本身就是一个指针类型构造方法1. new方法的实现实际上是分为两步的,1.分配存储空间,调用+alloc方法;2.初始化,调用-init方法  1>调用+alloc方法    Person *p1 = [Person alloc];  2>Person *p2 = [p1 init]

2014-09-30 18:49:46 808

原创 OC基础-Xcode+点语法+变量作用域+@property/@synthesize

多文件开发1. 定义一个类分2个文件:.h声明文件和 .m实现文件。.h是成员变量/方法的声明,.m是方法的实现。如果想要使用某一个类,只需#import类的.h文件即可Xcode的一些高级功能1. 提示功能2. #pragma mark - ********  //标记功能3. 建立自己的常用代码4. 断点执行代码功能5. Xcode是边写代码边编译6.

2014-09-30 18:46:18 710

原创 OC基础-封装+继承+多态+self+类方法

(成员变量的)封装:set方法/get方法1. set方法:可读可修改,为了不让外界随便的修改对象的属性值,所以通常成员变量都是被保护的(没有@public),所以通过设置一个set方法来“间接”的让对象来修改对象的成员变量值2. set方法名的命名规范:  1> set方法名必须以set开头  2> set后面跟上成员变量的名称,成员变量的首字母必须大写  3> 返回值一定是

2014-09-30 18:42:32 903

原创 分数拆分

//x的范围 [2k,k(k+1)]//y的范围 [k+1,2k]#include #include using namespace std;int main(){ int t,k,x,y; cin>>t; while(t--){ cin>>k; for(y=k+1;y<=2*k;y++) for(x=2

2014-09-20 17:50:25 621

原创 OC1

#import /***** 人类 书类 学生类 ****//* 1.学生是人 所以学生与人 有继承关系---继承 2.学生带着一本书 所以书是组成学生的一部分---组合 3.书有作者(人) 所以人是组成书的一部分---组合 1.类和组合都具有传递性(其实都是因为:指针) *继承是用‘:’,继承父类的成员变量以及方法 *组合是用类A在类B中定义一个指针变量

2014-09-19 15:02:45 853

原创 死神来了

//抽屉原理#includeint main(){ int n,m; while(~scanf("%d%d",&n,&m)){ //把1-n中的所有数按2倍进行分组[也可以看成制造新的抽屉,下面是制作新的抽屉的方法,这里按最小倍数2] //n为奇数时n&1=1; n为偶数时n&1=0 n=n/2+(n&1); //最大分组数

2014-09-13 15:00:25 829

原创 盗梦空间

#include#include#includeusing namespace std;int main(){ int t,m,count,sum,num; string s1="IN",s2="OUT",s3="STAY",s; cin>>t; while(t--){ cin>>m; count=sum=0;

2014-09-12 18:44:11 758

原创 Everything's OK

#include#include#includeusing namespace std;int main(){ int t,n,m,a[30005],b[30005]; cin>>t; while(t--){ cin>>n>>m; memset(a,0,sizeof(a)); memset(b,0,sizeof(b

2014-09-10 13:34:20 654

原创 小猴子下落

#include using namespace std;int main(){ int d,n,i,k; while(cin>>d>>n && !(d==0 && n==0)){ k=1; for(i=0;i<d-1;i++){ if(n%2){ //在每一层上,猴子往左走 k=k

2014-09-09 20:46:04 693 1

原创 三点顺序

#include using namespace std;int main(int argc, const char * argv[]){ double x1,y1,x2,y2,x3,y3; cin>>x1>>y1>>x2>>y2>>x3>>y3; while(!(x1==0 && y1==0 && x2==0 && y2==0 && x3==0 && y3==0)

2014-09-06 10:44:19 589

原创 排序算法小讲

选择排序:选择排序

2014-09-05 16:08:32 671

原创 最少相乘次数

#include using namespace std;int main(int argc, const char * argv[]){ int m,n; cin>>m; while(m--){ cin>>n; int count=0; while(n!=0){ count++;

2014-09-04 21:01:50 705

原创 求转置矩阵问题

#include using namespace std;int main(int argc, const char * argv[]){ int t,a[5][5],b[10],i,j; cin>>t; while(t--){ for(i=0;i<9;i++) cin>>b[i]; int count=0;

2014-09-04 18:38:39 673

原创 取石子(1)

#include using namespace std;int main(int argc, const char * argv[]){ int t,n,m; cin>>t; while(t--){ cin>>n>>m; if(n%(m+1)) cout<<"Win"<<endl; else

2014-09-04 18:02:14 522

空空如也

空空如也

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

TA关注的人

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