自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

ZHANG_FD的博客

学习就是要把所要学的都弄懂,而不是懂一点不懂一点,那这不叫学习,这叫预习,学习是一件持久的事情

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

原创 二十六天( UI开始)

button,textfield,label主要代码#import "ViewController.h"@interface ViewController ()@end@implementation ViewController- (void)viewDidLoad { [super viewDidLoad]; CGSize size=[UIScr

2015-11-23 17:06:36 319

原创 二十三天

内存管理:copy,拷贝的时候不会对引用计数器作出任何改变,要遵循NSCopying协议,实现NSCopying协议中的方法。因为是拷贝,所以定义的成员属性是等于self->成员属性。用assign也不会加1;NSString类型的retainCount为-1  (NSString 存储的内容是变量(不可以被改变));内存管理ARC:(不用空间就释放掉)strong----

2015-11-19 09:34:42 238

原创 二十二天

代码块:可以做数据类型,可以作为参数,与函数指针不同,代码块必须赋值一块代码。NSUInteger-----基本数据类型(比较特殊),不需要对象,就是不需要加上*objective-c内存管理:管理内存的原因:内存有限,MRC-人工引用记数ARC-自动引用记数retain--引用计数器+1release-引用计数器-1retainCount-获取当前的引用的计数器值

2015-11-18 09:24:42 336

原创 第二十一天

协议:新建协议:objective-c file。protocol协议语法:@protocol 协议名协议方法声明@optional---可以遵循的协议方法声明@required ---必须执行的协议方法声明协议:协议只能声明方法--不能声明变量,只要遵循一个协议,那么这个类就就包含协议的所有方法,协议具有继承性,可以被继承,可以遵循多个协议, 实现代理模式

2015-11-17 09:54:26 270

原创 第二十天

@class 用在两个类交叉去声明的时候,只是声明类,如果用到类中的方法,就要去用#import来导入头文件。id类型---相当于void*, 通用的指针类型,可以指向任意对象。本身就是指针类型,所以定义的时候不需要加上*   例如: id  new=[类名  new]; 也可以用在:类名  *new=[类名 new];    id newone=new;  然后newone就可以调用类中的对

2015-11-16 09:13:55 336

原创 十九天(待编辑修改)

集合:NSSet---不可变   NSMutableSet------可变          NSIndexSet---------存储有序的索引到某种数据结构1.NSSet(不可变集合)可变集合和不可变集合的方法都是通用的,因为可变集合是不可变集合的子类。初始化集合NSSet *set1=[NSSet setWithObjects:@1,@3,@5,@7,nil];NSMu

2015-11-14 15:06:04 373

原创 第十八天(待编辑状态)

数字,字符串,集合,数组

2015-11-14 14:28:56 327

原创 第十七天

分类,协议,代理

2015-11-14 14:27:29 307

原创 第十六天

在用set和get方法的时候person.age=10;实际调用的是[person stage:10];  NSLog(@"%d",person.age)实际调用的是[person age];不使用get和set方法可以使用@property int a,b; @synthesize a,b;使用get和set的方法作用是隐藏成员变量,过滤对成员变量操作的数据,对象点操作。类方法中能调

2015-11-11 09:18:06 384

原创 第十五天

类的封装性:内部的方法可以随便使用成员属性。访问私有类型和保护类型成员变量只能通过类的成员方法访问使用get和set方法:给保护类型和私有类型的数据一个对外开发接口,保护成员变量不被外界破坏(过滤非法数据),更好地隐藏成员变量set方法:set+变量名get方法:只写变量名就可以

2015-11-10 12:39:33 333

原创 小记2015-11-9

不知道为什么,我好像越学越兴奋了。奋斗的时光很快乐,不觉得累

2015-11-09 19:53:29 217

原创 第十四天(正式开始oc学习,持续时间大概两个星期)

库制作:保护知识产权( 把原文件隐藏)1.把所有原文件.c编译成二进制文件.o文件2.把二进制文件打包成库gcc -shared -o libfie.so file.o ......(等.o文件)3. 编译程序时候gcc -o main main.c -L(libfile .so所在的路径 )  -lfie(指定库名)编译流程:预处理,编译,汇编gcc-o  a

2015-11-09 09:39:00 558

原创 第十三天

输入一个整数进行二进制的转换(使用链栈,链栈的详细代码可以看上一篇文章的末尾处)比如输入121,要求输出的数的是121的二进制转换后的数,就是010110这些二进制数。首先把链栈写好.h文件://// stack.h// //// Created by FD on 15/11/6.////#ifndef stack_h#define stack_h#in

2015-11-08 09:53:39 278

原创 第十二天

昨天没写,今天补上单向链表:.h文件//// linklist.h// //// Created by FD on 15/11/7.////#ifndef linklist_h#define linklist_h#include #include #include typedef struct linklist{ int data; s

2015-11-08 09:45:17 260

原创 第十一天

链表模版:宿主结构(带数据的结构体)typedef struct  student{int age;struct list_head list;}student;struct list_head{struct list_head* prev;struct list_head* next;}创建宿主结构student *st

2015-11-06 14:22:28 277

原创 第十天

链表:单向链表 双向链表单向链表:typedef struct  linkList{int data;struct linkList *next;}linkList;双向链表:typedef struct DlinkList{int data;struct DlinkList* next;struct  Dlinklist *prev;}Dlin

2015-11-05 14:39:28 309

原创 第九天

结构体定义的时候不占空间,只有在定义了结构体对象后才占空间。tyoedef stuct Node{int a;char b;}Node;struct Node n1;struct Node *p=&n1;Node *q=(Node*)malloc(sizeof(Node));q->a=10;q->b='b';把结构体空间放进堆里面。练习:写一个函数对Node指针分配空间,

2015-11-04 09:26:06 312

原创 第八天(练习)

非法的转义字符:'\xaa', ‘\018’是合法的转义字符,因为'\0'是合法的。不管后面是什么都是合法的。当while没有循环体的时候,就是一个死循环。int k=0;do{++k;}while(k>=0);// 注意int的取值范围,所有还是有可能会跳出循环的。struct Node{int data;double(*p)[10];char *buf[10];bool

2015-11-03 19:20:33 553

原创 第七天(c内存)

内存,程序在内存中运行。(进程)栈:存放的是值类型数据,前提是局部变量,是由系统分配和释放的,效率高,优先使用栈空间,优先使用局部变量。两个函数中相同名字的常量在栈中是不会冲突的,因为存放的区域并不一样。堆:存放的是引用类型的,用户自己分配,自己释放malloc---freevoid *malloc(分配空间大小);int *p=malloc;free(

2015-11-02 09:25:48 292

原创 第五天(objective-c)(类和对象)

类和对象:类是抽象的物体,一般来说是一种事物,比如说书是一个类,这本书就是一个对象,一个实例。实例就是对象,对象就是实例,只是不同名称而已,指的东西都一样。对类进行操作的方法是类方法,实例方法就是对类的实例进行一些操作的方法,例如书是一个类,这本书就是一个实例,一个对象,阅读这本书就是一个实例方法,修改这本书也是一个实例方法,因为它是对实例进行操作的。而类方法就比如说生产书,是对书这个类进行操

2015-10-31 14:54:44 297

原创 小记

我一定要尽最大的努力学习,我做出的选择我自己来负责

2015-10-30 18:29:53 203

原创 第四天

指针数组:本身是一个数组,数组中存储的元素为指针。int *a[3];存储三个int* 的指针指针函数--本身是一个函数,返回值是一个指针变量  int *fun(int);函数指针--本身是一个指针,指针指向的是一个函数  int (*fun)(int);int add(int num){num++;return num;}int (*fun)(int)=add;

2015-10-30 09:20:18 359

原创 第三天

清屏幕:\033[0j清空光标以后的数据,\033[1j 清空光标以前的数据。[033][0,0H];数组:数组名-(常量,数组首地址,数组第一个元素地址)。int 里面数组未初始化部分用0填充,char里面未初始化的用’\0‘填充char str[4]="hello";只有在定义数组的时候可以赋值,str[4]="hello"是错误的。

2015-10-29 09:37:07 236

原创 第二天

函数传值对初始值是不产生任何影响(不管另一个函数的值改不改变),地址传值对初始值产生影响(如果另一个函数中的值会改变的话)。#includevoid add(int a,int b){ // a=1000; a=a+1; printf("%d\n",a); }void sub(int *a,int *b){ *a=10000; }int

2015-10-28 11:35:37 232

原创 第一天(c基础)

一个指针占4个字节在32位的系统下,在64位的系统下是8位int 4个字节 char 1个字节 float 4个字节 double 8个字节函数传递参数的方式:值传递,地址传递#ifndef xxxxxx #define xxxx #endif作用是防止头文件的重复加载变量:内存空间   数据类型:合理分配内存空间int a=123; int b=234; 把a,b值互换,a=

2015-10-27 15:42:20 303

空空如也

空空如也

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

TA关注的人

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