黑马程序员—IOS基础之OC—static、self、NSString和NSLog讲解
来源:互联网 发布:windows10壁纸软件 编辑:程序博客网 时间:2024/05/24 04:22
——Java培训、Android培训、iOS培训、.Net培训、期待与您交流! ——
第一章 static讲解
static是OC中的一个关键字,它声明变量时指定静态变量,分配在静态变量区,修饰函数时,指定函数作用域为文件内部。而且在声明变量前加上关键字static,还可以使局部变量保留多次调用一个方法所得的值。
在OC中static关键字的使用误区:
1)static不能声明实例变量,因为实例变量存在堆区,静态变量存在堆区,存储上会发生错误。2)static 也不能修饰方法。
示例:
#import <Foundation/Foundation.h>@interface Dog : NSObject{ //实例变量不能声明为静态 static int _speed;}//static也不能修饰方法static -(void)run;@end
static能在方法的实现中修饰局部变量
#import "Dog.h"@implementation Dog-(void)run{ //静态局部变量 static int num = 10; NSLog(@"num = %d",num); num++;}@end
static能在方法的实现中声明全局变量,只能在本文件中使用
#import "Dog.h"@implementation Dog//static声明全局变量,在其他文件中调用num的值不会变static int num = 10;-(void)run{ NSLog(@"num = %d",num); num++;}@end
第二章 self和super的讲解
OC中提供两个保留字,用于在方法定义中引用执行该方法的对象。学习self和super之前,要清楚属性这一个概念。内部属性就是实例变量。
super发送消息可以将方法实现分发qi父类。可以重写一个已有的方法来修改或将它添加到现有的方法中,仍然可以将原始的方法纳入到修改后的方法当中。
[super init]//调用父类的方法
self的应用场景
1)用在类方法2)用在对象方法3)访问成员变量
1)在类方法中指代的是当前的类
#import <Foundation/Foundation.h>@interface Person : NSObject+(void)test;+(void)run;-(void)eat;@end@implementation Person+(void)test{ NSLog(@"+test!");}+(void)run{ NSLog(@"\n+人在走!"); //self指代的是当前的类 //self == Person NSLog(@"\nself = %p",self); //使用类调用类方法 [self test]; //此时self不能调用eat,eat是对象方法,而我们self是类 [self eat];//错误}-(void)eat{ NSLog(@"eat!");}@end
2)在对象方法中
@interface Person : NSObject-(void)run;-(void)eat:(NSString*) foodName;@end@implementation Person-(void)run{ NSLog(@"人在走!");}-(void)eat:(NSString*) foodName{ NSLog(@"人在吃%@",foodName); //self在对象方法中使用指代的是调用当前对象方法的那个对象 //[p eat:@""]; self 指代的就是p [self run];}@end
3)访问成员变量
#import <Foundation/Foundation.h>@interface Dog : NSObject{ int speed;}-(void)setSpeed:(int)speed;-(int)speed;@end@implementation Dog-(void)setSpeed:(int)speed{ speed = speed; //self->speed访问的是实例变量 //加上self后表示访问的就是类的实例变量 //不加self访问的局部变量 self->speed = speed;}-(int)speed{ return speed;}@end
第三章 NSString和NSLog的讲解
1)NSString讲解
NSString是OC中字符串处理的类。
NSString *s = @"banzhang jiecao diaole "; //特殊用法 NSString *s1 = [NSString new]; s1 =@"jian le ma";//NSString是一个类
格式化创建字符串
//按照指定的格式创建NSString *imgName = [NSString stringWithFormat:@"xxxxxx%02d.jpg",3];
用一个已经存在的字符串创建一个新的字符串
//NSString是一个类NSString *s2 = [[NSString alloc] initWithString:s1];NSLog(@"s2 = %@",s2);
NSString长度的计算
NSString *s1 = @"ban";//使用length,NSUInteger长整型的类型NSUInteger len = [s1 length];
2)NSLog讲解
NSLog相当于C语言中的pringtf函数
NSLog的格式:
NSLog(@"格式化字符串",输出列表);//注意:输出字符串时格式和C不一样,使用%@输出NSLog(@"%@",s);
0 0
- 黑马程序员—IOS基础之OC—static、self、NSString和NSLog讲解
- 黑马程序员——OC基础之NSLog
- 黑马程序员——OC基础---Foundation之NSString
- 黑马程序员——OC基础之NSString类
- 黑马程序员——OC之NSString
- 黑马程序员——OC 基础:NSString的一些用法
- 黑马程序员——OC基础---Foundation<NSString,NSArray,NSMultableString>
- 黑马程序员——ios学习笔记 OC self&异常
- 黑马程序员——OC语法——self、super、NSString
- iOS基础之OC:C与OC的对比,(NSString,NSLog)
- 黑马程序员—IOS基础之OC—内存管理
- 黑马程序员——ios开发基础之OC简介
- 黑马程序员——IOS基础之OC——@property、动态检测与构造方法讲解
- 黑马程序员——oc之self的使用
- 黑马程序员——OC之self关键字、多态
- 黑马程序员---iOS基础---OC中的self、super
- 黑马程序员14——OC之Fundation(NSString)
- 【黑马程序员】OC-Foundation框架—NSString和NSRange
- android RelativeLayout 内容居中解决办法:
- 使用HttpClient访问网络
- 模板匹配(Match Template)
- java设计模式-Builder
- C++如何连续输入多个可能含空格的字符串
- 黑马程序员—IOS基础之OC—static、self、NSString和NSLog讲解
- 自己用java写的一个swing版的万年历
- 杭电 HDU ACM 1394 Minimum Inversion Number (线段树 逆序数)
- 【分块】 HDOJ 5286 wyh2000 and sequence
- hdu 3549 Flow Problem ek算法,网络流
- poj 1149 PIGS (网络流最大流Dinic)
- PyCharm设置python新建文件指定编码为utf-8
- 《纸牌屋》——交换才是硬道理?
- 2015年07月07日第六天笔记