11 2014 档案

摘要:A.概述 在"[iOS基础控件 - 4.4] APP列表 进一步封装,初见MVC模式”上进一步改进,给“下载”按钮加上效果、功能 1.按钮点击后,显示为“已下载”,并且不可以再按 2.在屏幕中间弹出一个消息框,通知消息“xx已经被安装”,慢慢消失 3.消息框样式为圆角半透明B.不使用代理模式,使用a... 阅读全文
posted @ 2014-11-29 17:26 HelloVoidWorld 阅读(543) 评论(0) 推荐(0)
摘要:A.概念例子就是桌面的APP列表,当APP数量超过一个屏幕,自动进行分页B.实现思路1.创建一个UIScrollView,这里设置为宽度跟屏幕相同,高度1/4屏幕高度左右2.使用代码在UIScrollView中添加ImageView,横向放入多张ImageView3.设置UIScrollView的c... 阅读全文
posted @ 2014-11-29 04:03 HelloVoidWorld 阅读(530) 评论(0) 推荐(0)
摘要:A.功能1.上下可滚动的电台 2 x n 的图标集2.顶部半透明标题3.底部半透明功能按钮B.实现思路1.设置图标、启动画面2.拖入UIScrollView,设置背景色(1)设置contentSize, x=0阻止水平移动3.加入电台图标(6个)4.加入顶部标题和设置按钮,加入到总的View,不是U... 阅读全文
posted @ 2014-11-29 04:01 HelloVoidWorld 阅读(532) 评论(0) 推荐(0)
摘要:原图: 900 x 1305 拖曳滚动:缩放: 主要代码: 1 // 2 // ViewController.m 3 // ImageZoom 4 // 5 // Created by hellovoidworld on 14/11/28. 6 // Copyright (c) 2014年 ... 阅读全文
posted @ 2014-11-29 03:58 HelloVoidWorld 阅读(563) 评论(1) 推荐(0)
摘要:A.需要掌握UIScrollView 是一个能够滚动的视图控件,可以用来展示大量内容,如手机的“设置”1.常见属性2.常用代理方法3.缩放4.UIScrollView和UIPageControl的分页5.NSTime的使用B.UIScrollView概念与使用练习:显示大图,以原始尺寸显示一张图片,... 阅读全文
posted @ 2014-11-29 03:48 HelloVoidWorld 阅读(679) 评论(3) 推荐(0)
摘要:1.App Icon把所有图标文件拖放到 “Images.xcassets” 的”AppIcon” 里面应对非视网膜和视网膜屏,APP有时会提供两套不同大小的图片,1倍图和2倍图,它们的像素相差一倍。命名规则:2倍图在1倍图的名字后加 @2x普通:sample.png2倍:sample@2x.png... 阅读全文
posted @ 2014-11-28 01:32 HelloVoidWorld 阅读(23138) 评论(0) 推荐(0)
摘要:对于开发中设置的位置、尺寸单位 系统会根据屏幕的性质转换为像素单位 由于视网膜屏在同样尺寸下分辨率是非视网膜屏的两倍,所以 非视网膜屏:1个单位 = 1像素 视网膜屏:1个单位 = 2像素 应对非视网膜和视网膜屏,APP有时会提供两套不同大小的图片,1倍图和2倍图,它们的像素相差一倍。 命名规则:2倍图在1倍图的名字后加 @2x 普通:sample.png 2倍:sample@2x... 阅读全文
posted @ 2014-11-28 01:30 HelloVoidWorld 阅读(1465) 评论(2) 推荐(0)
摘要:A.需要掌握的1.添加图片资源(暂时认为@2x跟非@2x代表同一张图片)2.搭建UI界面* 文本标签* 4个按钮* 中间的图片3.设置状态栏样式4.监听下一题按钮的点击5.延迟加载数据* 加载plist* 字典转模型* KVC的引入6.切换下一题的序号、图片、标题,下一题按钮的可用性7.默认显示第1... 阅读全文
posted @ 2014-11-28 01:24 HelloVoidWorld 阅读(876) 评论(0) 推荐(1)
摘要:Xcode本身带有编码常用的代码块可供使用,如下图例如 “if” 这个代码块的定义调用方法1.可以直接拖放带编辑区2.使用快捷键,键入 “if”, Xcode就会出现自动完成的提示用户也可以自定义自己常用的代码块:1.编写代码2.选择代码,在选择的代码上长按鼠标左键直至光标符号变成鼠标图案3.拖放到... 阅读全文
posted @ 2014-11-26 17:46 HelloVoidWorld 阅读(779) 评论(0) 推荐(0)
摘要:A.从ViewController分离View 之前的代码中,View的数据加载逻辑放在了总的ViewController中,增加了耦合性,应该对控制器ViewController隐藏数据加载到View的细节。 封装View的创建逻辑 封装View的数据加载逻辑到自定义的UIView中 B.思路 使用xib封装自定义view的步骤: 1.新建一个继承UIView的自... 阅读全文
posted @ 2014-11-25 19:42 HelloVoidWorld 阅读(583) 评论(1) 推荐(0)
摘要:1.不能呼出iOS模拟器键盘 Can't find keyplane that supports type 4 for keyboard iPhone-Portrait-NumberPad 解决:Hardware->Keyboard->ConnectHardware Keyboard这一项不要勾选 屏蔽电脑键盘 阅读全文
posted @ 2014-11-25 16:03 HelloVoidWorld 阅读(221) 评论(1) 推荐(0)
摘要:A.storyboard和xib1.storyboard: 相对xib较重量级,控制整个应用的所有界面2.xib: 轻量级,一般用来描述局部界面B.使用1.新建xib文件New File ==> User Interface ==> Empty2.打开新建的xib文件,出现可视化窗口(1)拖入一个U... 阅读全文
posted @ 2014-11-25 13:31 HelloVoidWorld 阅读(655) 评论(0) 推荐(0)
摘要:A.使用字典加载数据的缺点1.用户自行指定key,容易出错2.存入、取出都需要key,容易混乱B.模型 (MVC中的model)1.字典与模型对比:(1)字典:存储数据,通过字符串类型的key取值(容易写错,写错了key编译器不会报错)(2)模型:存储数据,自定义属性存储数据,其实就类似JavaBe... 阅读全文
posted @ 2014-11-25 01:34 HelloVoidWorld 阅读(544) 评论(2) 推荐(0)
摘要:需求 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 阅读(279) 评论(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 阅读(409) 评论(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 阅读(335) 评论(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 阅读(710) 评论(1) 推荐(0)
摘要:UIButton A.素材准备 1.图片素材放置到Images.xcassets中 B.按钮状态 1.normal:默认状态 Default 对应的枚举常量:UIControlStateNormal 2.highlighted(高亮状态) 按钮被按下去的时候(未松开) 对应的枚举常量:UIControlStateHighlighted 3.disabled(失效状态,不可用状态)... 阅读全文
posted @ 2014-11-24 21:44 HelloVoidWorld 阅读(439) 评论(1) 推荐(0)
摘要:A. UIView1.概念属于UIKit框架屏幕上能看得见摸得着的东西就是UIView,比如屏幕上的按钮、文字、图片翻译为:视图/控件/组件UIButton、UILable、UITextField都继承自UIView每一个UIView都是一个容器,能容纳其他UIView2.父控件和子控件父控件:容纳... 阅读全文
posted @ 2014-11-24 21:42 HelloVoidWorld 阅读(423) 评论(1) 推荐(2)
摘要:A. 目录管理 1 NSFileManager*manager = [NSFileManagerdefaultManager];//单例模式 2 3 // 1.获取文件属性 4 NSString *path = @"/Users/hellovoidw... 阅读全文
posted @ 2014-11-24 19:24 HelloVoidWorld 阅读(312) 评论(0) 推荐(0)
摘要:A.集合的手动内存管理NSArrayaddObject: 加入的元素执行一次retainremoveObject: 被删除的元素执行一次releaseremoveAllObjects: 所有元素执行一次releaseB.ARC机制集合内存分析当一个对象被放入集合中时,会保存它的强指针当一个对象被从集... 阅读全文
posted @ 2014-11-24 19:23 HelloVoidWorld 阅读(217) 评论(0) 推荐(0)
摘要:A.NSSet跟NSArray一样,不可变NSArray 自然顺序NSSet是无序的NSSet不允许存入重复元素,可以用来过滤重复元素也有可变的NSMutableSetB.集合转换 1 // 1.NSArray 转换成 NSMutableArray 2 NSArray *ar... 阅读全文
posted @ 2014-11-24 19:22 HelloVoidWorld 阅读(287) 评论(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 阅读(317) 评论(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 阅读(139) 评论(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 阅读(285) 评论(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 阅读(230) 评论(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 阅读(254) 评论(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 阅读(209) 评论(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 阅读(203) 评论(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 阅读(257) 评论(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 阅读(188) 评论(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 阅读(288) 评论(0) 推荐(0)
摘要:NSArray是不可变的,不能先创建再添加元素NSArray可以放入任何OC对象,但不能放入基本数据类型、结构体、枚举等非OC对象不能存储nilA.常用方法1创建返回用量是否含有某元素最后的元素取得某位置的元素当一个对象放入数组的时候,这个对象的计数器加1 1 #pragma mark create... 阅读全文
posted @ 2014-11-24 19:08 HelloVoidWorld 阅读(364) 评论(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 阅读(219) 评论(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 阅读(263) 评论(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 阅读(202) 评论(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 阅读(197) 评论(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 阅读(627) 评论(0) 推荐(0)
摘要:A.概念1.用来声明方法(不能声明成员变量)2.只要某个类遵守了这个协议,相当于拥有了协议中得所有方法的声明3.属性(1)@required:默认,要求实现,不实现就会发出警告(2)@optional:不要求实现————MyProtocol.h-------------- 1 @protocol M... 阅读全文
posted @ 2014-11-24 18:57 HelloVoidWorld 阅读(236) 评论(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 阅读(337) 评论(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 阅读(276) 评论(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 阅读(244) 评论(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 阅读(207) 评论(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 阅读(219) 评论(0) 推荐(0)
摘要:A.id万能指针,可以指向任何对象,实质是NSObject的指针,使用的时候不用加上*B.NSObject中得类方法new1.完整地创建一个可用对象步骤(1)分配存储空间 + alloc(2)初始化 - init1 // 1.调用+alloc分配存储空间2 Perso... 阅读全文
posted @ 2014-11-24 18:46 HelloVoidWorld 阅读(2267) 评论(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 阅读(244) 评论(0) 推荐(0)
摘要:A. 命令行编译和XCode编译1.在存在多个.m源码实现文件的情况下,若根据需要引入.m文件,使用命令行仅仅编译主.m文件即可,但是XCode会同时编译全部.m文件,会发生编译错误(重复定义全局变量或函数)解决方案:使用.h和.m文件,分开声明和定义B.XCode功能1.自动生成.h和.m2.保存... 阅读全文
posted @ 2014-11-24 18:44 HelloVoidWorld 阅读(349) 评论(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 阅读(174) 评论(0) 推荐(0)
摘要:A.对象的多种形态1.父类指针指向子类对象2.调用方法的时候,会动态监测真实地对象的方法3.没有继承,就没有多态4.好处:用一个父类指针可以指向不同的子类对象5.强制转换类型之后就能使用子类特有的方法,否则会出现warning(仍可以正常运行,即不论指针类型,只要对象存在实际方法就可以运行) 1 ... 阅读全文
posted @ 2014-11-24 18:42 HelloVoidWorld 阅读(199) 评论(0) 推荐(0)
摘要:A.继承的实现: is a1.不允许子类、父类存在相同的成员变量2.方法调用优先原则:子类调用方法的时候,优先从本类寻找,若无则向上在父类中寻找3.重写:子类重新实现父类的方法,覆盖父类之前的方法4.无论对象方法或类方法都可以重写5.缺点:致使耦合性增强6.OC只能单继承B.组合的实现: has1.... 阅读全文
posted @ 2014-11-24 18:41 HelloVoidWorld 阅读(232) 评论(1) 推荐(0)
摘要:A.OC弱语法1.在运行的时候才会检查方法的声明和实现2.没有声明只有实现的方法也能正常运行,只要在调用之前定义即可3.类的声明必须存在,否则会出现运行时错误B.类方法1.是类名调用的方法2.使用加号修饰的方法3.类方法和对象方法可以重名4.对象方法和类方法都允许多次声明,都不允许多次定义5.类方法... 阅读全文
posted @ 2014-11-24 18:40 HelloVoidWorld 阅读(242) 评论(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 阅读(210) 评论(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 阅读(833) 评论(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 阅读(234) 评论(0) 推荐(0)
摘要:Obj-C中没有包得概念,使用前缀进行区分自带类用NS开头命名关键字使用@开头A. 第一个OC程序1. 导入Foundation框架的主头文件#import 自动过滤重复引入的文件2. 源代码和头文件(1) .h : 类的声明文件(2) .m : 类的实现文件3.使用终端编译链接OC程序例如:编译链... 阅读全文
posted @ 2014-11-24 17:49 HelloVoidWorld 阅读(310) 评论(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 阅读(627) 评论(0) 推荐(0)
摘要:进制二进制int number = 0B1010;没有二进制的输出格式八进制 int number2 = 07613; printf("number2 = %o\n", number2);十六进制 int number3 = 0X9FEA3; printf("number3 = %x\n", num... 阅读全文
posted @ 2014-11-10 14:38 HelloVoidWorld 阅读(198) 评论(0) 推荐(0)
摘要:算术运算符运算符的优先级括号 > 正负 > 数学运算 > 位运算 > 数学对比 > 逻辑对比 > 条件运算 > 赋值运算A.赋值运算符复合赋值运算符+=-+*=/=B.自增自减a++ ++aa— —aps:没有自乘自除:a** a//C.sizeof输出所占字节数D.关系运算除了0之外都是true返... 阅读全文
posted @ 2014-11-10 14:37 HelloVoidWorld 阅读(228) 评论(0) 推荐(0)
摘要:union Student{ int age; char *name;} stu;union只按照最长的数据成员分配控件,适用于有N个数据不会同时出现的情况,用以压缩空间。 阅读全文
posted @ 2014-11-10 14:36 HelloVoidWorld 阅读(194) 评论(0) 推荐(0)
摘要:使用gcc编译器1.预编译gcc -E Hello.c -o Hello.i2.汇编gcc -S Hello.i -o Hello.s3.编译gcc -c Hello.s -o Hello.o4.链接gcc Hello.o -o Hello5.运行./Hello使用clang编译器1.编译cc -c... 阅读全文
posted @ 2014-11-10 14:35 HelloVoidWorld 阅读(198) 评论(0) 推荐(0)
摘要:一数据类型关键字 12 个:1 . char2 . short3 . int4 . long5. enum6. float7. double8. signed9. unsigned10. struct11. union12.void 二 控制类型关键字 12 个循环语句 1.for2.do 3.wh... 阅读全文
posted @ 2014-11-10 14:34 HelloVoidWorld 阅读(1637) 评论(0) 推荐(0)
摘要:关键字typedeftypedef 操作符可以看做是普通变量和类型之间的转换开关!!例如typedef int Integer;//定义了一种类型int Integer;//定义了一个变量就是类型和变量的区别A. 对数据类型定义“别名"1 int main(int argc, const char ... 阅读全文
posted @ 2014-11-10 14:33 HelloVoidWorld 阅读(228) 评论(2) 推荐(0)
摘要:枚举是c语言中得一种基本数据类型,不是数据结构用于声明一组常数1. 3中枚举变量的方式a. 先定义类型, 再定义变量b. 同时定义类型和变量c. 匿名定义enum Season {Spring, Summer, Autumn, Winter};enum Season s = Spring;已经定位为... 阅读全文
posted @ 2014-11-10 14:32 HelloVoidWorld 阅读(419) 评论(0) 推荐(0)
摘要:A. extern函数一个c文件生成一个obj文件外部函数:允许其他文件访问、调用的函数(默认函数为外部函数),不允许存在同名的外部函数my.c1 //define a extern function perfectly2 void extern testEx()3 {4 printf("m... 阅读全文
posted @ 2014-11-10 14:31 HelloVoidWorld 阅读(293) 评论(0) 推荐(0)
摘要:A. 基本知识与数组的对比数组:构造类型只能有多个相同类型的数据构成结构体:结构体类型可以由多个不同类型的数据构成1. 定义类型1 struct Student2 {3 int age;4 char *name;5 float heig... 阅读全文
posted @ 2014-11-10 14:30 HelloVoidWorld 阅读(287) 评论(0) 推荐(0)
摘要:编译之前的处理指令A.宏定义a.1 //Like static constant2 #define NUM 63 4 //The truth of macro define is replacing the constant5 //Replace "sum(a, b)" with "a+b"6 #d... 阅读全文
posted @ 2014-11-10 14:29 HelloVoidWorld 阅读(218) 评论(0) 推荐(0)
摘要:字符数组 char *看做一个特殊的字符数组, 在字符串结束为止添加'\0'结束符 (ASCII码0), 没有\0结尾的是普通的字符数组。使用双引号定义的字符串自动在尾部加上\0puts(s)函数:输出内存直至遇到\0数组变量名代表了数组地址,例如char s[20], s就是数组地址,不用&sge... 阅读全文
posted @ 2014-11-10 14:28 HelloVoidWorld 阅读(179) 评论(0) 推荐(0)
摘要:存放变量地址的变量int a = 1;int *p;p = &a;在64位系统中,占用8个字节直接引用间接引用*p : 指针指向的变量的值不要使用未初始化的指针1.使用指针实现改变实参值2.函数返回两个值, 使用指针参数可以改变值的方法3.不同类型的指针的区别,区分指向的值的长度A.指针与一维数组1... 阅读全文
posted @ 2014-11-10 14:28 HelloVoidWorld 阅读(266) 评论(0) 推荐(0)
摘要:A.变量的作用域:1.局部变量:在函数或者代码块内部定义的变量作用域:从定义处到代码块结束生命周期:从定义处分配控件,代码块结束后被回收局部变量没有默认值,要自己初始化2.全局变量:在函数外定义的变量作用域:从定义处到文件结尾(能被后面的所有函数共享)生命周期:程序启动分配空间,程序退出回收全局变量... 阅读全文
posted @ 2014-11-10 14:26 HelloVoidWorld 阅读(266) 评论(0) 推荐(0)
摘要:基本数据类型:byteshortintunsigned intlonglong longunsigned longfloatdoublecharchar *The size (byte) of each data typeshortintunsigned intlonglong longunsign... 阅读全文
posted @ 2014-11-10 14:25 HelloVoidWorld 阅读(249) 评论(0) 推荐(0)