摘要:
需求 1.以N宫格的形式展示应用信息 2.APP信息包括图标、名字、下载按钮 3.使用尽可能少的代码,从plist读取app信息,计算每个app图标的位置尺寸信息 A.思路 1.UI布局:N宫格 2.事件监听 3.动态添加 (by plist) 4.整体封装,组合每个应用信息,使用View的层级包装帮助布局 B.实现 (使用纯代码方式) 1 // 2 // View... 阅读全文
posted @ 2014-11-24 22:04
HelloVoidWorld
阅读(438)
评论(0)
推荐(0)
摘要:
1.NSBundle1> 一个NSBundle代表一个文件夹,利用NSBundle能访问对应的文件夹2> 利用mainBundle就可以访问软件资源包中的任何资源3> 模拟器应用程序的安装路径/Users/aplle/资源库/Application Support/iPhone Simulator/... 阅读全文
posted @ 2014-11-24 22:02
HelloVoidWorld
阅读(278)
评论(0)
推荐(0)
摘要:
需求: 1.点击按钮播放相应动画 2.点击汤姆猫身体部分(头、脚、尾巴)显示动画 3.当前正在播放动画不可触发其他动画 4.优化缓存、内存管理 A.序列帧动画 #1. png格式的文件可以不带扩展名访问,而且可以放到”Images.scassets”的组中预览,jpg只能放到support file中了,而且访问的时候要写上扩展名 #2. 在ViewController中的属性... 阅读全文
posted @ 2014-11-24 22:01
HelloVoidWorld
阅读(513)
评论(0)
推荐(0)
摘要:
需求: 1.显示当前图片序号/总图片数 2.显示图片 3.上一张图片、下一张图片转换 4.显示图片描述 A.数据的加载方式 1.逐个加载、处理 2.使用数组、字典分离数据和逻辑 3.延迟加载 将初始化放在getter初始化,当需要的数据不存在才初始化 4.使用plist 存储数据在外部文件,剥离数据和逻辑代码 不要使用带”info”的名字,会跟系统文件混... 阅读全文
posted @ 2014-11-24 21:53
HelloVoidWorld
阅读(408)
评论(1)
推荐(0)
摘要:
A.概念 可以控制UIView的位置、尺寸、旋转 transform是一种状态,每次都是相对于原始状态作出的形变 1.位置移动 1 // 向上移动
2 - (IBAction)top:(UIButton *)sender {
3 // 1.transform是相对于初始状态的一种状态,但是其实self.head.frame.origin的值已经被改变了
4 // sel... 阅读全文
posted @ 2014-11-24 21:50
HelloVoidWorld
阅读(333)
评论(1)
推荐(0)
摘要:
A.storyboard 控件版 1.label 2.textfield a.Keyboard Type 账号:Number Pad 密码:Number and Punctuation b.Placeholder:提示文字 c.Clear Button: Appears with editing 清除按钮 d.... 阅读全文
posted @ 2014-11-24 21:48
HelloVoidWorld
阅读(707)
评论(1)
推荐(0)
摘要:
UIButton A.素材准备 1.图片素材放置到Images.xcassets中 B.按钮状态 1.normal:默认状态 Default 对应的枚举常量:UIControlStateNormal 2.highlighted(高亮状态) 按钮被按下去的时候(未松开) 对应的枚举常量:UIControlStateHighlighted 3.disabled(失效状态,不可用状态)... 阅读全文
posted @ 2014-11-24 21:44
HelloVoidWorld
阅读(438)
评论(1)
推荐(0)
摘要:
A. UIView1.概念属于UIKit框架屏幕上能看得见摸得着的东西就是UIView,比如屏幕上的按钮、文字、图片翻译为:视图/控件/组件UIButton、UILable、UITextField都继承自UIView每一个UIView都是一个容器,能容纳其他UIView2.父控件和子控件父控件:容纳... 阅读全文
posted @ 2014-11-24 21:42
HelloVoidWorld
阅读(418)
评论(1)
推荐(2)
摘要:
A. 目录管理 1 NSFileManager*manager = [NSFileManagerdefaultManager];//单例模式 2 3 // 1.获取文件属性 4 NSString *path = @"/Users/hellovoidw... 阅读全文
posted @ 2014-11-24 19:24
HelloVoidWorld
阅读(309)
评论(0)
推荐(0)
摘要:
A.集合的手动内存管理NSArrayaddObject: 加入的元素执行一次retainremoveObject: 被删除的元素执行一次releaseremoveAllObjects: 所有元素执行一次releaseB.ARC机制集合内存分析当一个对象被放入集合中时,会保存它的强指针当一个对象被从集... 阅读全文
posted @ 2014-11-24 19:23
HelloVoidWorld
阅读(216)
评论(0)
推荐(0)
摘要:
A.NSSet跟NSArray一样,不可变NSArray 自然顺序NSSet是无序的NSSet不允许存入重复元素,可以用来过滤重复元素也有可变的NSMutableSetB.集合转换 1 // 1.NSArray 转换成 NSMutableArray 2 NSArray *ar... 阅读全文
posted @ 2014-11-24 19:22
HelloVoidWorld
阅读(284)
评论(0)
推荐(0)
摘要:
注意:1.变量名和函数名不要混淆调用2.不要对文件夹进行文件的操作,没有权限3.递归调用注意初始化变量 1 // 2 // main.m 3 // CodeLineCount 4 // 5 // Created by hellovoidworld on 14-11-18. 6 // Copy... 阅读全文
posted @ 2014-11-24 19:21
HelloVoidWorld
阅读(314)
评论(0)
推荐(0)
摘要:
使用Class来创建实例1 // 18.通过@"Ball"创建一个Ball实例(不可以使用[[Ball alloc] init]创建)2 NSString *className = @"Ball";3 Class class = NSClassFrom... 阅读全文
posted @ 2014-11-24 19:20
HelloVoidWorld
阅读(138)
评论(0)
推荐(0)
摘要:
1.没有权限读取文件夹The file “Homework2” couldn’t be opened because you don’t have permission to view it.—>不能对文件夹进行文件的操作,例如读取文件内容2.C函数运行时链接错误变量名和函数名混淆使用了,导致调用错... 阅读全文
posted @ 2014-11-24 19:20
HelloVoidWorld
阅读(263)
评论(0)
推荐(0)
摘要:
一个对象使用copy或mutableCopy方法可以创建对象的副本1.copy需要实现NSCopying协议创建出来的是不可变副本,如NSString, NSArray, NSDictionary(1)不可变对象调用copy (NSSring除外)不会产生新的对象,而是返回对象本身,相当于retai... 阅读全文
posted @ 2014-11-24 19:19
HelloVoidWorld
阅读(278)
评论(0)
推荐(0)
摘要:
1.判断某个对象是否属于一个类1 Student *stu = [[[Student alloc] init] autorelease];2 BOOL result= [stu isKindOfClass:[Person class]];3 NSLog... 阅读全文
posted @ 2014-11-24 19:18
HelloVoidWorld
阅读(227)
评论(0)
推荐(0)
摘要:
日期处理类定义时间间隔计算时间比较,返回其一时间格式化 1 void dateCreate() 2 { 3 //date return current time 4 NSDate *date = [NSDate date]; 5 NSLog(@"%@", date); 6 ... 阅读全文
posted @ 2014-11-24 19:17
HelloVoidWorld
阅读(251)
评论(0)
推荐(0)
摘要:
在NSDictionary中,nil代表结束,允许存入使用NSNull代替 1 int main(int argc, const char * argv[]) { 2 @autoreleasepool { 3 NSNull *n = [NSNull null]; 4 ... 阅读全文
posted @ 2014-11-24 19:16
HelloVoidWorld
阅读(161)
评论(0)
推荐(0)
摘要:
NSNumber能够包装基本数据类型称为OC对象,是因为继承了NSValue包装结构体成OC对象1.自带结构体 1 void value() 2 { 3 CGPoint point = CGPointMake(10, 10); 4 NSValue *obj = [NSValue va... 阅读全文
posted @ 2014-11-24 19:15
HelloVoidWorld
阅读(208)
评论(0)
推荐(0)
摘要:
1.概念NSArray,NSDictionary只能放OC对象,不能放入基本数据类型必须使用包装类NSNumber,把基本数据类型包装成OC对象不支持自动包装解包 1 void number() 2 { 3 NSNumber *number = [NSNumber numberWithInt... 阅读全文
posted @ 2014-11-24 19:14
HelloVoidWorld
阅读(202)
评论(0)
推荐(0)
摘要:
1 void dicUse() 2 { 3 NSMutableDictionary *dic = [NSMutableDictionary dictionary]; 4 Student *stu1 = [Student studentWithName:@"Simon"]; 5 ... 阅读全文
posted @ 2014-11-24 19:13
HelloVoidWorld
阅读(197)
评论(0)
推荐(0)
摘要:
通过唯一的key找到相应的value,类似于MapNSDictionary是不可变的1.创建 1 void dicCreate() 2 { 3 //Immutable 4 // NSDictionary *dic = [NSDictionary dictionary]; 5 6... 阅读全文
posted @ 2014-11-24 19:12
HelloVoidWorld
阅读(254)
评论(0)
推荐(0)
摘要:
可变的NSArray,可以随意添加OC对象1.创建 1 void arrayCreate() 2 { 3 NSMutableArray *array = [NSMutableArray arrayWithObject:@"1"]; 4 5 [array addObject:@... 阅读全文
posted @ 2014-11-24 19:10
HelloVoidWorld
阅读(186)
评论(0)
推荐(0)
摘要:
1.派生 1 voidarrayNew() 2 { 3 NSArray*array = [NSArrayarrayWithObjects:@"1",@"2",nil]; 4 NSArray*array2 = [arrayarrayByAddingObject:@"3"]; 5 NS... 阅读全文
posted @ 2014-11-24 19:09
HelloVoidWorld
阅读(286)
评论(0)
推荐(0)
摘要:
NSArray是不可变的,不能先创建再添加元素NSArray可以放入任何OC对象,但不能放入基本数据类型、结构体、枚举等非OC对象不能存储nilA.常用方法1创建返回用量是否含有某元素最后的元素取得某位置的元素当一个对象放入数组的时候,这个对象的计数器加1 1 #pragma mark create... 阅读全文
posted @ 2014-11-24 19:08
HelloVoidWorld
阅读(361)
评论(0)
推荐(0)
摘要:
NSString是不可变的NSMutableString是可变字符串1.初始化2.串联字符串3.替换字符串4.插入字符串5.删除字符串 1 #pragma mark buffer string create 2 void stringCreate() 3 { 4 NSMutableStrin... 阅读全文
posted @ 2014-11-24 19:06
HelloVoidWorld
阅读(218)
评论(0)
推荐(0)
摘要:
1 NSString *s1 = @"0123456789";1.比较使用 == 号比较的是字符串地址1 NSString *s4 = @"abcdefg";2 NSString *s4_sub = [s4 substringToIndex:3];... 阅读全文
posted @ 2014-11-24 19:05
HelloVoidWorld
阅读(247)
评论(0)
推荐(0)
摘要:
1 void exportString() 2 { 3 NSString *str = @"Hello, 坑爹"; 4 NSString *path = @"/Users/hellovoidworld/Study/Foundation/NSString/abc.txt"; 5 ... 阅读全文
posted @ 2014-11-24 19:02
HelloVoidWorld
阅读(214)
评论(0)
推荐(0)
摘要:
A. 不可变字符串 1 void stringCreate() 2 { 3 //Don't need to release memory by this way 4 NSString *str1 = @"String Sample"; 5 6 NSString *st... 阅读全文
posted @ 2014-11-24 19:01
HelloVoidWorld
阅读(200)
评论(0)
推荐(0)
摘要:
使用函数改变NSString 1 void changeStr2(NSString **str3) 2 { 3 *str3 = @"789"; 4 } 5 6 int main(int argc, const char * argv[]) { 7 @autoreleasepool ... 阅读全文
posted @ 2014-11-24 19:01
HelloVoidWorld
阅读(196)
评论(0)
推荐(0)
摘要:
底层封装是使用了typedef定义的结构体typedef struct _NSString{xxxxxx} NSString;1. NSRange 结构体#注意结构体不是对象3种定义方式1 typedef struct _NSRange{2 int locat... 阅读全文
posted @ 2014-11-24 19:00
HelloVoidWorld
阅读(327)
评论(0)
推荐(0)
摘要:
ARC 自动引用计数ARC不是垃圾回收,而是编译器自动插入代码来减少程序员的代码输入和失误。 同时比垃圾和效率要高,因为其不影响运行时间,相当于自己管理内存。总是通过属性... 阅读全文
posted @ 2014-11-24 18:58
HelloVoidWorld
阅读(624)
评论(0)
推荐(0)
摘要:
A.概念1.用来声明方法(不能声明成员变量)2.只要某个类遵守了这个协议,相当于拥有了协议中得所有方法的声明3.属性(1)@required:默认,要求实现,不实现就会发出警告(2)@optional:不要求实现————MyProtocol.h-------------- 1 @protocol M... 阅读全文
posted @ 2014-11-24 18:57
HelloVoidWorld
阅读(229)
评论(0)
推荐(0)
摘要:
A.概念1.block类似函数(1)可以保存代码(2)有返回值(3)有形参2.block的标志:^ 1 // 没有参数和返回值的block 2 void (^myblock)() = ^{ // 没有形参,可以省略() 3 NSLog(@"这是新定义的block");... 阅读全文
posted @ 2014-11-24 18:56
HelloVoidWorld
阅读(336)
评论(0)
推荐(0)
摘要:
A.ARC的基本原理1.ARC的判断原则:只有没有强指针指向对象,就会立即释放对象注意,在以下情况,会立即回收内存:(1)指针超出作用域1 {2 Person *p1 = [[Personalloc] init];3 p1.name = @"p1";4 ... 阅读全文
posted @ 2014-11-24 18:55
HelloVoidWorld
阅读(273)
评论(0)
推荐(0)
摘要:
A.内存存放、retain、release1.栈内存:存放局部变量,运行超过变量作用域自后编译器自动回收2.堆内存:存放对象(地址,对象实体)3.对象的基本结构(1)引用计数器(4字节):当计数器为0的时候被回收,初始化时为1(2)当使用alloc、new、copy创建对象的时候,计数器默认是1(3... 阅读全文
posted @ 2014-11-24 18:54
HelloVoidWorld
阅读(258)
评论(0)
推荐(0)
摘要:
A.概念1.SEL类型代表方法2.每个方法都有一个对应的SEL类型的数据3.实例对象调用方法(1)编译器会把类的方法包装成SEL类型的数据,(2)根据SEL数据找到方法地址,缓存此地址(3)根据方法地址调用相应的方法4.调用方法的方式 1 // 1.直接调用 2 [p... 阅读全文
posted @ 2014-11-24 18:51
HelloVoidWorld
阅读(248)
评论(0)
推荐(0)
摘要:
A. 实例对象打印-description1.当使用NSLog函数并且使用%@占位符的时候,会调用对象的-description方法2.拿到-description的返回值,显示到console中默认返回指针地址 1 @implementation Person 2 3 - (NSString *... 阅读全文
posted @ 2014-11-24 18:50
HelloVoidWorld
阅读(240)
评论(0)
推荐(0)
摘要:
A.概念类对象:类也是一个对象,是Class类型的对象实例对象:创建的对象,有一个isa指针指向类B.操作获取内存中的内对象1.使用实例对象获取Class c = [p class];不必使用*2.使用类获取Class c = [Person class];C.类的加载1.先加载父类,再加载子类,加... 阅读全文
posted @ 2014-11-24 18:48
HelloVoidWorld
阅读(205)
评论(0)
推荐(0)
摘要:
A.给某个类扩充方法(不改变原来的类)例如,给类Person加上名为Simon的category,加上一个-study方法使用()注明Person+Simon.h 1 @interface Person (Simon) 2 - (void) study; 3 @end 4 5 Person+Si... 阅读全文
posted @ 2014-11-24 18:47
HelloVoidWorld
阅读(217)
评论(0)
推荐(0)
摘要:
A.id万能指针,可以指向任何对象,实质是NSObject的指针,使用的时候不用加上*B.NSObject中得类方法new1.完整地创建一个可用对象步骤(1)分配存储空间 + alloc(2)初始化 - init1 // 1.调用+alloc分配存储空间2 Perso... 阅读全文
posted @ 2014-11-24 18:46
HelloVoidWorld
阅读(2260)
评论(0)
推荐(0)
摘要:
Xcode编译器的特性,自动生成getter和setterA.@property自动生成某个成员变量的getter和setter的声明变量的命名要求:以下划线开头 1 2 Student.h 3 @interface Student : NSObject 4 { 5 int _age; ... 阅读全文
posted @ 2014-11-24 18:45
HelloVoidWorld
阅读(241)
评论(0)
推荐(0)
摘要:
A. 命令行编译和XCode编译1.在存在多个.m源码实现文件的情况下,若根据需要引入.m文件,使用命令行仅仅编译主.m文件即可,但是XCode会同时编译全部.m文件,会发生编译错误(重复定义全局变量或函数)解决方案:使用.h和.m文件,分开声明和定义B.XCode功能1.自动生成.h和.m2.保存... 阅读全文
posted @ 2014-11-24 18:44
HelloVoidWorld
阅读(343)
评论(0)
推荐(0)
摘要:
1.NSString基本使用使用%@占位符输出对象1 int age = 15;2 int no = 5;3 NSString *str2 = [NSString stringWithFormat:@"My age is %d and no is %d", age, no];... 阅读全文
posted @ 2014-11-24 18:43
HelloVoidWorld
阅读(172)
评论(0)
推荐(0)
摘要:
A.对象的多种形态1.父类指针指向子类对象2.调用方法的时候,会动态监测真实地对象的方法3.没有继承,就没有多态4.好处:用一个父类指针可以指向不同的子类对象5.强制转换类型之后就能使用子类特有的方法,否则会出现warning(仍可以正常运行,即不论指针类型,只要对象存在实际方法就可以运行) 1 ... 阅读全文
posted @ 2014-11-24 18:42
HelloVoidWorld
阅读(197)
评论(0)
推荐(0)
摘要:
A.继承的实现: is a1.不允许子类、父类存在相同的成员变量2.方法调用优先原则:子类调用方法的时候,优先从本类寻找,若无则向上在父类中寻找3.重写:子类重新实现父类的方法,覆盖父类之前的方法4.无论对象方法或类方法都可以重写5.缺点:致使耦合性增强6.OC只能单继承B.组合的实现: has1.... 阅读全文
posted @ 2014-11-24 18:41
HelloVoidWorld
阅读(228)
评论(1)
推荐(0)
摘要:
A.OC弱语法1.在运行的时候才会检查方法的声明和实现2.没有声明只有实现的方法也能正常运行,只要在调用之前定义即可3.类的声明必须存在,否则会出现运行时错误B.类方法1.是类名调用的方法2.使用加号修饰的方法3.类方法和对象方法可以重名4.对象方法和类方法都允许多次声明,都不允许多次定义5.类方法... 阅读全文
posted @ 2014-11-24 18:40
HelloVoidWorld
阅读(237)
评论(0)
推荐(0)
摘要:
A.封装内部细节,根据需求暴露方法 1 #import 2 3 @interface Student : NSObject 4 { 5 int age; 6 } 7 8 - (void) setAge:(int) newAge; 9 - (int) age;10 11 - (void)... 阅读全文
posted @ 2014-11-24 18:36
HelloVoidWorld
阅读(207)
评论(0)
推荐(0)
摘要:
1 /* 2 计算器类 3 1>返回π 4 2>计算两个整数的平方 5 3>计算两个整数的和 6 */ 7 8 9 #import 10 11 @interface Calculator: NSObject12 //方法名:pi13 - (double) pi;14 15 //OC方... 阅读全文
posted @ 2014-11-24 18:35
HelloVoidWorld
阅读(831)
评论(0)
推荐(0)
摘要:
1 #import 2 3 typedef enum {GenderMan, GenderFemale} Gender; 4 5 typedef enum {ColorRed, ColorBlue, ColorGreen} Color; 6 7 typedef struct ... 阅读全文
posted @ 2014-11-24 18:23
HelloVoidWorld
阅读(231)
评论(0)
推荐(0)
摘要:
Obj-C中没有包得概念,使用前缀进行区分自带类用NS开头命名关键字使用@开头A. 第一个OC程序1. 导入Foundation框架的主头文件#import 自动过滤重复引入的文件2. 源代码和头文件(1) .h : 类的声明文件(2) .m : 类的实现文件3.使用终端编译链接OC程序例如:编译链... 阅读全文
posted @ 2014-11-24 17:49
HelloVoidWorld
阅读(303)
评论(0)
推荐(0)
摘要:
A.类型说明符(只能修饰int)short int: = short 2字节long int: long 8字节 = long 输出占位符 %ldsigned int: = signed 默认 带符号位unsigned int := unsigned 去除符号位,用以存放数值long long i... 阅读全文
posted @ 2014-11-24 17:41
HelloVoidWorld
阅读(623)
评论(0)
推荐(0)

浙公网安备 33010602011771号