static(修饰局部变量:延迟生命周期,跟整个应用程序有关,程序结束才会销毁,并且只会分配一次内存)
static CGFloat const kLogoImageWidth = 100; //logo宽度
NSString *const BKUSER_AGE_KEY = @"XXXXX.userAge";
使用const修饰基本的变量(修饰全局变量:目的是外界无法改变,保持只读,提高预编译的速度和时间)
const int a = 1; 等价于 int const a = 1;//定义了a为只读变量
a = 2;//程序会报错,因为a无法被修改
const与宏的区别
1、编译上:宏-预编译 const-编译
2、编译检查:宏-没有编译检查 const-有编译检查
3、宏的好处:可以定义函数 const-不可以定义函数
4、宏的弊端:大量使用宏会导致预编译时间过长
【预编译:在打开项目的时候上面会有一个加载项目的进度条就是预编译;编译:command+B 或 command+R都是编译】
scrollView滑动方向判断
-(void)scrollViewWillBeginDragging:(UIScrollView *)scrollView {
historyY = scrollView.contentOffset.y;
}
-(void)scrollViewDidScroll:(UIScrollView *)scrollView {
if (scrollView.contentOffset.y<historyY) {
NSLog(@"down");
} else if (scrollView.contentOffset.y>historyY) {
NSLog(@"up");
}
}
网友评论