- 浏览: 137206 次
- 性别:
- 来自: 惠州
最新评论
-
SEN03:
赞一个
hibernate包下载 配置 -
zjdzhayq:
你好啊,博主,想学习下3d的赛车,能不能指点指点!
jpct-ae开发3D赛车游戏 -
kaki:
今天碰到了同样的问题,谢谢!
<result name ...
There is no result type defined for type 'plaintext'...
文章列表
有可能模拟器没有连上网,
iOS Simulator -> Reset Content and Settings解决
Day19 ios常用文件
- 博客分类:
- ios
Info.plist文件
程序运行的配置文件,不能删除(修改了infoplist文件,模拟器应用要删除,程序要clean),该文件的图形化配置界面就是直接点击项目,主界面配置。
bundledisplayname:程序名称
bundleID:上架标识
bundleversionstring: ...
Day18 UI杂七杂八
- 博客分类:
- ios
UIViewController
UIViewController用来管理UIView,负责创建、显示、销毁、监听UIView内部事件,处理UIView与用户的交互。UIViewController内部有个UIView属性负责管理UIView
@property(nonatomic,retain) UIView *view;
-(void)ViewDidLoad(){
[super viewDidLoad];
}// ...
xcode中常用快捷键
- 博客分类:
- 编程工具
xcode常用快捷键
用惯了eclipse快捷键,现在开始学习oc,罗列些常用快捷键,见到再不断补充~
1、上下移动当前行
option+command+[ 向上移动当前行
option+command+] 向下移动当前行
参见
2、删除当前行
首先command+←移到当前行头,再ctrl+k删除光标后所有内容
或者command+→移动当前行尾,再command+delete删除光标前所有内容(推荐)
或者鼠标三击选中当前行+delete
3、复制当前行到下一行
鼠标三击选中当前行,移到下一行command+c
4、运行,停止,在工具栏的Product中
...
Day17 oc Foundation结构体
- 博客分类:
- ios
结构体
NSRange(包括location和length,可表示某字符串在一字符串的位置和长度、数组中元素等)
//结构体方式的赋值(不常用)
NSRange r1 = {1,2};
NSRange r2 = {.location = 1,.length = 2};
//使用下面方法
NSRange r3 = NSMakeRange(1,2);
NSRange r4 = [str rangeOfString:@"aaa"];//查找某个字符串在str中的范围,如果找不到,length = 0,location = NSNotFound = -1
...
Day16 oc protocol协议
- 博客分类:
- ios
protocol协议的使用
创建文件,选择object c - protocol,只有.h文件
@protocol Myprotocol
{
-(void)test1;
@required//默认,要求实现,不实现会发出警告,方便协同交流(不同于java中接口不实现会报错)
-(void)test2;
@optional//不要求实现
-(void)test3;
}
协议关键字:required、optional
用来声明方法,类想要拥有这些方法,只需遵守这个协议
#import “MyProtocol.h”
//:继承<>遵守 ...
Day15 oc block数据类型
- 博客分类:
- ios
定义block变量
int (^myBlock)(int ,int );
普通代码块
{
do something...代码块中的成员变量作用域为代码块结束时
}
block封装代码块
block封装了一段代码,可以在任何时候调用。很像函数,可以保存代码,有参数返回值。
^(){
};
^{
};
^(int a ,int b){
};
定义+封装如下,block的标志:^
void (^blockName)()=^{//如果block没有形参可以省略^()
do something...
};
利用block调用blo ...
Day14 oc ARC
- 博客分类:
- ios
ARC基本原理
是一个编译器特性,编译器在发现alloc对象,插入release的代码。不同于java的垃圾回收机制,是运行时机制。ARC的判断机制:只要没有强指针指向对象就会释放对象。
强指针:默认情况下所有指针都是强指针__strong
...
Day13 oc autorelease
- 博客分类:
- ios
autorelease
autorelease方法会返回对象本身,调用后会将对象放入自动释放池中,当自动释放池销毁时,会对池中所有对象做一次release操作
Person *p = [[[Person alloc] init] autorelease];//对象计数器并没有变
ios5.0以后,自动释放池的使用
@autoreleasepool
{//括号开始代表创建自动释放池
}//括号结束代表销毁
即
@autoreleasepool//延缓了对象释放的时间,缺点也是不能精确控制对象的销毁
{//1
Person *p = [[[Person alloc] in ...
循环引用
开发中引用一个类的规范
1、在.h中用@class来声明类
2、在.m中用#import来包含所有类的东西
Person.h
@class Card//在头文件中仅仅@class,用在头文件中声明一个类,相比较import不是全部导入
@interface Person :NSObject
@property(nonatomic,retain) Card *card;
@end
Card.h
@class Person//仅仅告诉编译器Person是个类
@interface Card :NSObject
@property(nonatomic, ...
Day11 oc SEL
- 博客分类:
- ios
SEL
1、把test方法包装成sel类型的数据
2、根据sel数据找到对应的方法地址
3、根据方法地址找到对应的方法
Person *p = [[Person alloc] init];
//间接通过sel调用方法[p performSelector:@selector(test)];
[p test];
//传参[p performSelector:@selector(test1:) withObject:@"aaa"]
[p test1:@"aaa"];
方法的存储位置
每个类的方法列表都存储在类对象中,每个方法都有一个与 ...
Day10 oc分类Category
- 博客分类:
- ios
oc分类Category
作用:不修改原类的基础上给类扩充方法
注意:
1、分类只能增加方法,不能增加成员变量,如果要添加变量考虑用继承
2、分类方法实现中可以访问原类的成员变量
3、分类重新实现原类中的方法,会覆盖原方法,会导致原方法失效(不建议)
4、多个分类实现类同一个方法,会按照编译顺序,分类编译顺序在项目-》build phases-》compile sources中查看
新建文件,选择cocoa下oc category,category on填写要扩充的类
@interface 类名(分类名)
@end
@implementation 类名(分类名)
@ ...
更改xcode项目模板
- 博客分类:
- ios
应用程序中,找到xcode.app右击显示包内容下
Contents/Developer/Library/Xcode/Templates路径下找到相应的对plist文件进行修改
Day9 oc构造函数、析构函数及类本质
- 博客分类:
- ios
oc构造函数
//new方法做了如下两件事,一般开发比较少用new,因为分配空间不能选择其他方式初始化
Person *p = [Person new];
//1、调用+alloc分配存储空间
Person *p1 = [Person alloc];
//2、调用-init进行初始化
Person p2 = [p1 init];
//Person *p3 = [[Person alloc] init];合起来写
构造方法用来初始化对象的方法,因此init方法为构造方法。初始化后成员变量值为0。
//重写-init方法,可以对成员变量赋值,因为子类返回类型不确定(多态),因 ...
Day8 oc弱语法
- 博客分类:
- ios
oc弱语法
oc的方法调用是在运行时才会检测对象有没有实现相应的方法
#import <Foundation/Foundation.h>
//@interface Person:NSObject
//@end
//此处加了:NSObject
@implementation Person:NSObject
- (void)test
{
NSLog(@"test");
}
@end
int main()
{
Person *p=[Person new];
[p test];
r ...