自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(42)
  • 收藏
  • 关注

原创 代码截屏

//代码截屏 //(1)设置截屏的图片大小 UIGraphicsBeginImageContext(view.frame.size); //(2)对哪个视图截图固定大小的图片 [view.layer renderInContext:UIGraphicsGetCurrentContext()]; //(3)获取截图的图片对象 UIImage *imag

2014-08-28 16:56:33 683

原创 代码块使用方式

UILabel * = [[UILabel alloc] initWithFrame:CGRectMake(, , , )]; .text = @""; .textColor = [UIColor ]; .font = [UIFont systemFontOfSize:]; .layer.cornerRadius = ; .layer.masksToBoun

2014-08-28 16:46:09 531

原创 登陆页面创建

@interface LoginViewController : UIViewController @end#pragma mark - loadView//创建登录界面-(void)loadView{ //[super loadView]; LoginView *lgView = [[LoginView alloc] initWithFrame:CGRectZero]

2014-08-25 08:32:34 620

原创 牛逼,点击空白处回收键盘,设置view的大小,视图控制器(特别重要)

#import "AppDelegate.h"#import "RootViewController.h"@implementation AppDelegate- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions{ sel

2014-08-23 09:12:34 716

原创 点击textField没有响应情况 在屏幕上未看到创建的视图的情况

//1.点击textField没有响应 //(1)textField上面还有视图 UITextField *tf = [[UITextField alloc] initWithFrame:CGRectMake(50, 100, 220, 40)]; tf.backgroundColor = [UIColor yellowColor]; tf.borderStyle

2014-08-22 11:13:07 447

原创 设计模式

/** 工厂设计模式(1) 抽象工厂 提供一个抽象的基类,使用时我们采用具体的子类 (2)工厂方法 快速创建对象 (如:便利构造器) (3)对象工厂 用来加工对象(在这个类(如person类)里从不使用自己类的对象,使用其他类的对象) *//**MVC设计模式 UIViewController是MVC设计模式的核心 MVC是一个框架级的设计模式 M是Model,主要用于建

2014-08-22 11:09:18 512

原创 显示传递,计算界面的切换

@interface FYZAppDelegate : UIResponder @property (retain, nonatomic) UIWindow *window;@end#import "FYZAppDelegate.h"#define kBGView_Color [UIColor greenColor] //背景视图的颜色#define kView_Color [U

2014-08-20 19:09:49 545

原创 拼成一个找回密码界面

#import @interface AppDelegate : UIResponder @property (retain, nonatomic) UIWindow *window;@end

2014-08-19 19:39:01 908

原创 OCKVC的使用,重写的方法

#import #import "Student.h"@interface Person : NSObject{ NSString *_name;//姓名 NSString *_gender;//性别 NSInteger _age;//年龄 Student *_stu;//学生}@end

2014-08-17 22:19:36 470

原创 笑笑语法

方法与顺序无关 2.枚举绑定数据类型 enum { ObjectiveC, Java, Ruby, Python, Erlang }; typedef NSUInteger Language; 3. 属性不用写@synthesize 4.语法简化 4.1 NSNumber

2014-08-17 15:52:31 454

原创 NSCopying协议的使用,setter和getter方法的作用,内存管理高级,集合的内存管理

#import "Teacher.h"@interface Student : NSObject{ Teacher *_tea;//学生类的实例变量}@property (nonatomic, retain) Teacher *tea;//当语义属性声明为retain时,.m文件会自动生成setter方法和getter方法@property (nonatomic, copy) T

2014-08-17 09:58:26 560

原创 排序,block,降序排序

NSArray *arr = [[NSArray alloc] initWithObjects:@"cc", @"bb", @"ee", @"dd", @"aa", nil]; //1.对数组进行升序排序 //sortedArrayUsingSelector:排序方法,使用场景,适用于升序排序以及自定义的类排序 NSArray *arrAscendi

2014-08-16 18:36:25 616

原创 内存管理初级

***自己每开辟一次空间,自己要对其(自己开辟的)进行释放;对引用计数+1,相应的也要对引用计数-1;不必管系统对空间的操作,系统会对其进行处理.1.能让引用计数改变的五个方法(1)+alloc开辟内存空间,将对象的引用计数+1(2)-retain将对象的引用计数+1(3)-copy(4)-release将对象的引用计数立即-1(5)-autorelease将对象的引用计数

2014-08-14 22:46:01 361

原创 内存管理题

//内存管理基本原则: //如果你对一个对象进行了alloc,retain,copy之后,你就拥有了该对象的所有权,就必须对他进行release或autorelease(最好紧挨着) //面试题 */ //内存泄漏问题(没有立即释放空间,占用内存太多)// @autoreleasepool {// for (long i = 0; i

2014-08-14 19:02:32 417

原创 二维数组,字符串数组

二维数组:二维数组定义时,第一维下标可以省略(行数可以省略),但是第二维下标必须制定,(列数必须要给,列数时换行的一个标准) int a[][3] = {1,2,3,4,5,6, 7}; 并且,第一维下标和第二位下标都必须是常量或常量表达式//外层循环用来控制行数,内层循环用来控制列数// for (int i = 0; i < 4; i ++) {//

2014-08-14 14:43:47 10502

原创 函数,static

函数和函数之间可以嵌套调用,但是不可以嵌套定义function definition is not allowed here 解释:在这里不允许定义 产生原因:函数与函数之间存在嵌套定义,(也就是函数题中又定义了另外一个函数) 解决方式:把内部函数的定义提到函数外边,让函数与函数之间形成并列关系。//实参:实际参数,真实的具体的数据,也就是在函数调用时给定的参数叫做实参//形参:形式参

2014-08-14 14:41:42 465

原创 结构体成员内存分配原则,结构体

//结构体定义 结构体是一种自定义的数据类型,也是用来存储多个数据的大类型,只不过比要比数组灵活可以存储不同类型的数据//结构体内存分配原则//以结构体成员中所规定的存储空间最大的空间为单位进行分配,是最大空间的最小整数倍//struct + 结构体名字{大括号中填写结构体成员,多个结构体成员之间通过分号进行间隔 + ;(分号必不可少)}// 这里没有变量struct student {

2014-08-14 14:33:36 1050

原创 协议,代理,类目

/* * 协议 就相当于一个任务清单,规定了所要做的操作,(只有一系列方法的声明)谁服从该协议,谁就要实现该协议中的方法(完成任务清单中的内容)。所以协议只有.h文件,没有.m文件 */@protocol TeachingProtocol // @optional 可选择的,被它修饰的方法服从协议的类可以选择实现(可以实现,也可以不实现)// @required 必须的,被它修饰的方法

2014-08-14 08:45:25 358

原创 父类型指针可以指向子类型的对象。但是对于子类型的指针不能指向父类型的对象(原理)

//父类型指针可以指向子类型的对象。但是对于子类型的指针不能指向父类型的对象 //reason :父类有的方法子类全有,但是子类有的方法,父类不一定全有(牵扯到isa) //原理:首先看看接收对象的类型是不是有对象要调用的方法,如果有,则看对象(指针变量)指向的那块空间里对应的isa(类类型,哪个类开辟空间,isa就是哪个类)是否有该方法,如果有,则正确

2014-08-13 13:05:06 925

原创 有一个数组,数组中有13个元素,先将该数组进行分组,每3个元素为一组,分为若干组,最后用一个数组统一管理这些分组.(要动态创建数组).

//第一种方法NSArray *arr = @[@"aa",@"bb",@"cc",@"dd",@"ee",@"ff",@"jj",@"hh",@"ii",@"gg",@"kk",@"ll",@"mm" ,@"mm",@"mm",@"mm"];// 二维数组 NSMutableArray *arr1 = [NSMutableArray array]; for (

2014-08-12 22:56:11 1873

原创 OC属性总结

setter和getter方法的命名规范属性的三大特性

2014-08-11 21:41:53 435

原创 系统提供的头文件被不小心修改的修正步骤

错误原因:系统提供类的头文件被更改.解决方案:(1)查找到如下代码.(2)将下列代码复制下来/Users/lanouhn/Library/Developer/Xcode/DerivedData/ModuleCache/2BMQKH570KACS(3)打开Finder(4)点击前往->前往文件夹->将复制的代码粘贴进去->点击前往(5)找到2BMQKH570KACS的文件夹->将其删

2014-08-11 09:33:07 837

原创 block 和 全局变量

//在其他文件定义的全局变量如果想在本文件中使用,则需要在本文件的main函数外部加上关键字extern + (int d),这样就可以使用其他文件中定义的全局变量;//在两个不同的.m文件中同时定义了同一个名称的变量,如果想在各自的文件中使用,互不影响,那么只要把他们在各自的文件中定义成一个静态全局变量就可以了,不然,两个文件(.m)同时编译,会重复,从而出错;int d = 10;//全局

2014-08-11 08:49:35 686

原创 可见度

在子类的实现文件里,可以直接使用父类哥共有

2014-08-11 08:44:17 518 1

原创 OC中按姓名,年龄,身高升序,降序排序

{ NSString *_name;//性别 NSInteger _age;//年龄 CGFloat _height;//身高}//setter name- (void)setName:(NSString *)name;//getter- (NSString *)name;//setter age- (void)setAge:(NSInteger)age;

2014-08-10 16:13:31 1777

原创 block的用法, 全局变量

#import //在其他文件定义的全局变量如果想在本文件中使用,则需要在本文件的main函数外部加上关键字extern + (int d),这样就可以使用其他文件中定义的全局变量;//在两个不同的.m文件中同时定义了同一个名称的变量,如果想在各自的文件中使用,互不影响,那么只要把他们在各自的文件中定义成一个静态全局变量就可以了,不然,两个文件(.m)同时编译,会重复,从而出错;int d

2014-08-10 15:51:37 1436

原创 实现中等难度通讯录。需求: 1、定义联系人类AddressContact。实例变量:姓名(拼音,首字母大写)、性别、电话号码、住址、分组名称、年龄。方法:自定义初始化方法(姓名、电话号码)、显示联系人

// 1、定义联系人类AddressContact。实例变量:姓名(拼音,首字母大写)、性别、电话号码、住址、分组名称、年龄。方法:自定义初始化方法(姓名、电话号码)、显示联系人信息{ NSString *_name;//姓名 NSString *_gender;//性别 NSInteger _phoneNumber;//电话号码 NSString *_loca

2014-08-08 22:11:40 5535 2

原创 进制转换,指针前奏,奇偶互换,左移,右移

//1个字节又是8位二进制数 1kb = 8b int a = 010 + 010;//0开头是八进制 //0b开头是二进制 0x开头是十六进制 printf("%x", a);//%o打印八进制 %x打印十六进制 //位运算符, 先换成二进制数然后再计算 //按位与&(同为1,则为1,否则为0) printf("%d\n",

2014-08-07 09:26:04 769

原创 指针

定义一个整型变量 int a = 10; 定义一个指针变量,和定义整型变量类似,也是包含三部分:数据类型 变量名=初值 只不过指针变量用来存储地址而已int *p = NULL; //指向关系 p = &a;//将a的地址赋给p printf("%d\n", a);//直接访问 内存单元中的数据 //*p ,此时的作用根据指针变量存储

2014-08-07 09:21:35 432

原创 OC方法关键字

application interface应用程序接口NSMutableString Mutable 易变的Inherits 继承Conforms to 服从Framework 类库Overview 综述,概述Tasks 任务, 功能(方法)declare 声明Immutable 不可变的object 对象subclass 子类access to 访问,进入

2014-08-07 09:14:08 431

原创 指针高级,宏

使用宏应注意的几个问题:使用宏时,最后不能加分号,(分号也会最为替换的内容)参数要加括号对于有参宏,宏名与括号之间不能加空格结构体指针访问结构体成员,通过指向操作符,例如:结构体指针变量->结构体成员printf("%s\n",pStu->name);//指向操作符 pStu->age = 100; printf("%d\n", pStu->age); print

2014-08-07 09:10:10 436

原创 OC字符串类型方法总结

//* 1. 创建对象 // 两种方式: //(1)便利构造器(+号方法) stringWithFormat: NSString *str1 = [NSString stringWithFormat:@"iPhone%d", 5]; NSLog(@"str1 = %@", str1); //(2)alloc+初

2014-08-07 08:25:45 620

原创 动态内存分配

//**//* 存储区的划分1.栈区:栈区存储局部变量,栈区的内存是系统自动管理的,系统开辟,系统回收,无需程序员管理.2.堆区:通过堆区内存分配函数,分配的空间都在堆区,堆区最大的特点:堆区的空间需要程序员手动管理,手动开辟,手动释放(oc常用)3.常量区:对于字符常量,整型常量,浮点型常量,字符串常量同一存储在该区,该区的内存由系统自动管理,特点:常量区的内容不可修改4.静态区,全

2014-08-06 09:29:50 415

原创 函数指针

//函数指针类型重定义,指向一个函数typedef void(*app)();//类型重定义typedef int(*PFUN)(int, int);void sendShunFeng(){ printf("发顺丰");}void sendYunda(){ printf("发韵达");}void sendYuanTong(){ printf("发圆通");

2014-08-06 09:20:57 659

原创 函数指针,包装,函数指针按姓名,年龄,成绩排序

//定义一个学生结构体数组typedef struct student { char name[20];//存储姓名 int age;//存储年龄 float score;//存储成绩}Student;//结构体类型重定义//按年龄排序, 只有判断条件不同,可以把他们单独提出来,因为判断条件的结果只有两个,非0即1,因此可以用bool类型的返回值来代替BOOL

2014-08-06 09:14:51 451

原创 递归,const的用法

递归//void eatAppleXiaoMeng(int n)//{// //对于递归来说,必须要有出口,也就是递归的结束标志,必须要有结束,否则就会有死循环// if (n == 0) {// return;//return后面什么都不写,代表返回值类型为空void// }// n--;//苹果个数减1// printf("晓檬吃第%

2014-08-05 23:00:22 678

原创 OC

面向对象编程 oop面向过程编程 pop对象是类的实例//面向过程编程(Procedure Oriented Programming, pop):以事件为中心,关心该事件的详细过程,一步一步实现//面向对象编程(Object Oriented Programming, OOP):以事物为中心,也就是参数事件的参与者,设计事物的功能,而完成事件只是事物所有功能中的一个小功能//类 : 具有

2014-08-05 22:55:30 260

原创 继承,初始化方法

导入和继承没有什么特殊的关系,继承一定导入了,但是导入却比一定继承customized init method 自定义初始化方法一个子类只能有一个父类,一个父类可以有多个子类,单继承,继承具有传递性,子类可以具有父类中除了声明@private的实例变量之外的全部内容super class 父类子类 subclass//坑点[self eat] 使用self来调用自己的方法

2014-08-05 22:52:19 333

原创 将字符串中的数字提取出来, 动态分配内存

char str[] = "vaercly12345";  char *a = str;  int num = 0, i = 0;  while (*(a + i) != '\0') {      if (*(a + i) >= '0' && *(a + i) '9') {          num++;      }      i++;  }  printf(

2014-08-03 18:20:31 571

原创 OC第一节总结

面向过程编程 (Procedure Oriented Programming, POP), 以事件为中心, 关心完成事件的详细步骤, 一步一步如何实现面向对象编程(Object Oriented Programming, OOP), 以事物为中心, 也就是参数事件的参与者, 设计事物的功能, 而完成事件只是事物的所有功能中的一个小功能类 具有相同特征和相同行为的事物的抽象, 是一个抽象的概

2014-08-01 22:35:25 242

空空如也

空空如也

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

TA关注的人

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