//UIButton->UIControl->UIView
//UIControl:所有带有事件操作的控件都会继承于UIControl
//*UIImageView会按照自己的大小展示图片,图片会被拉伸或压缩*//
//rootViewController:将控制器管理的view加载到window层上
self.window.rootViewController = vc;
//创建view的方法,如果我们不自动创建view,必须回调loadView的方法,这样系统会自动创建一个view
//只有view创建结束,控制器才会开始加载视图
- (void)loadView{
[super loadView];
//手动创建view
// self.view = [[UIView alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
// self.view.backgroundColor = [UIColor redColor];
NSLog(@"loadView");
}
/iewDidLoad:当self.view创建完成时,执行此方法;在这个方法里进行视图的创建(创建UI界面)
//相当页面的起点
/*
viewDidLoad 进行数据,视图的创建及加载
*/
/lf.view默认的tag值为0,我们自己创建的视图的tag值不能为0
/*
loadView和viewDidLoad 在页面不销毁的情况下,只会执行一次
*/
- (void)viewDidLoad {
[super viewDidLoad];
}
- (void)buttonClick:(UIButton *)button{
//1、获取之前创建label
UILabel *label = (UILabel *)[self.view viewWithTag:1000];
//2、静态的变量:
static int i = 0;
// ++i;
//3、更改文字
label.text = [NSString stringWithFormat:@"按钮被点击了%d次",++i];
}
//这里面static int i = 0;这行代码会先在编译阶段只编译一次,之后不会再走这行代码 。每次点击按钮,i会进行累加。静态变量的好处
- (void)btnClick:(UIButton *)sender {
}
关于后面的参数问题?
terminate 终结
常见报错:
- [Person test]: unrecognized selector sent to instance 0x7fd2ca097c0
给Person对象发送了一个不能识别的消息:text 并且是减号对象方法
什么是控件?
什么是封装?
弱语法?
概念:
工具类:基本没有任何成员变量,里面的方法基本都是类方法
断点调试,代码段保存,注释标记#program mark - UIView,多文件查看
1.点语法的本质是方法调用
例如:
{
int _age;
}
p.age = 10;会自动调用[p setAge:10]; 不是访问成员变量,况且现在成员变量只有下划线age,_age
@interface
{
成员变量
}
@public 在任何地方都能直接访问对象的成员变量 (_age = 1;这是直接访问)
@private只能在当前类的对象方法中直接访问 其子类只能通过setter和getter方法访问
@protected 能在当前类和其子类的对象方法中直接访问
@package 只要处在同一个框架中,就能直接访问对象的成员变量
@implementation
{
成员变量 这里声明默认就是私有的@private
}
@property声明的属性 是实例变量加setter和getter方法组合。其中实例变量如果存在则不会自动生成,如果不存在,就自动生成,并且自动生成@private类型的实例变量(或叫做成员变量)(如_age)
默认情况下,setter和getter方法中的实现会去访问下划线开头的成员变量(实例变量)
自从Xcode4.4之后,@property独揽了@synthesize的功能
%@ 返回的是一个NSString指针,用来输出字符串。
%s 用于输出字符串数组。
类 (class):表示对象类型的集合体。
对象 (object):是一种包含值和指向其类的隐藏指针的结构体。
实例 (instance):对象的另一种称呼。
消息 (message):对象可以执行的操作,成员函数,实例方法的抽象名称。
方法 (method):为响应消息而运行的代码。
//实例化:开辟空间并初始化
_userArray=[[NSMutableArray alloc] init];
//实例: instance 对象的另一种称呼
//输出屏幕的尺寸 NSStringFromCGRect(size)
CGRect size = self.view.frame;
NSLog(@"size == %@",NSStringFromCGRect(size));
NSArray 自然顺序
NSSet 是无序的 注意:NSSet中不能存储重复的数据,可以用它来去除重复的值
NSSet *set = [[NSSet alloc]initWithObjects:str1,str2,str3,str1,nil];
此时set中只有3个
userInteractionEnabled
//只有UILabel和UIImageView的userInteractionEnabled默认为NO,其他默认YES
//userInteractionEnabled为YES时,本身view可以接受用户响应,而且,它上面的子视图也可以接受用户响应,如果父视图不接受用户响应,它上面的子视图也不能参与用户响应
//UIControl:所有带有事件操作的控件都会继承于UIControl
//*UIImageView会按照自己的大小展示图片,图片会被拉伸或压缩*//
//rootViewController:将控制器管理的view加载到window层上
self.window.rootViewController = vc;
//创建view的方法,如果我们不自动创建view,必须回调loadView的方法,这样系统会自动创建一个view
//只有view创建结束,控制器才会开始加载视图
- (void)loadView{
[super loadView];
//手动创建view
// self.view = [[UIView alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
// self.view.backgroundColor = [UIColor redColor];
NSLog(@"loadView");
}
/iewDidLoad:当self.view创建完成时,执行此方法;在这个方法里进行视图的创建(创建UI界面)
//相当页面的起点
/*
viewDidLoad 进行数据,视图的创建及加载
*/
/lf.view默认的tag值为0,我们自己创建的视图的tag值不能为0
/*
loadView和viewDidLoad 在页面不销毁的情况下,只会执行一次
*/
- (void)viewDidLoad {
[super viewDidLoad];
}
- (void)buttonClick:(UIButton *)button{
//1、获取之前创建label
UILabel *label = (UILabel *)[self.view viewWithTag:1000];
//2、静态的变量:
static int i = 0;
// ++i;
//3、更改文字
label.text = [NSString stringWithFormat:@"按钮被点击了%d次",++i];
}
//这里面static int i = 0;这行代码会先在编译阶段只编译一次,之后不会再走这行代码 。每次点击按钮,i会进行累加。静态变量的好处
- (void)btnClick:(UIButton *)sender {
}
关于后面的参数问题?
terminate 终结
常见报错:
- [Person test]: unrecognized selector sent to instance 0x7fd2ca097c0
给Person对象发送了一个不能识别的消息:text 并且是减号对象方法
什么是控件?
什么是封装?
弱语法?
概念:
工具类:基本没有任何成员变量,里面的方法基本都是类方法
断点调试,代码段保存,注释标记#program mark - UIView,多文件查看
1.点语法的本质是方法调用
例如:
{
int _age;
}
p.age = 10;会自动调用[p setAge:10]; 不是访问成员变量,况且现在成员变量只有下划线age,_age
@interface
{
成员变量
}
@public 在任何地方都能直接访问对象的成员变量 (_age = 1;这是直接访问)
@private只能在当前类的对象方法中直接访问 其子类只能通过setter和getter方法访问
@protected 能在当前类和其子类的对象方法中直接访问
@package 只要处在同一个框架中,就能直接访问对象的成员变量
@implementation
{
成员变量 这里声明默认就是私有的@private
}
@property声明的属性 是实例变量加setter和getter方法组合。其中实例变量如果存在则不会自动生成,如果不存在,就自动生成,并且自动生成@private类型的实例变量(或叫做成员变量)(如_age)
默认情况下,setter和getter方法中的实现会去访问下划线开头的成员变量(实例变量)
自从Xcode4.4之后,@property独揽了@synthesize的功能
%@ 返回的是一个NSString指针,用来输出字符串。
%s 用于输出字符串数组。
类 (class):表示对象类型的集合体。
对象 (object):是一种包含值和指向其类的隐藏指针的结构体。
实例 (instance):对象的另一种称呼。
消息 (message):对象可以执行的操作,成员函数,实例方法的抽象名称。
方法 (method):为响应消息而运行的代码。
//实例化:开辟空间并初始化
_userArray=[[NSMutableArray alloc] init];
//实例: instance 对象的另一种称呼
//输出屏幕的尺寸 NSStringFromCGRect(size)
CGRect size = self.view.frame;
NSLog(@"size == %@",NSStringFromCGRect(size));
NSArray 自然顺序
NSSet 是无序的 注意:NSSet中不能存储重复的数据,可以用它来去除重复的值
NSSet *set = [[NSSet alloc]initWithObjects:str1,str2,str3,str1,nil];
此时set中只有3个
userInteractionEnabled
//只有UILabel和UIImageView的userInteractionEnabled默认为NO,其他默认YES
//userInteractionEnabled为YES时,本身view可以接受用户响应,而且,它上面的子视图也可以接受用户响应,如果父视图不接受用户响应,它上面的子视图也不能参与用户响应