黑马程序员——ios学习笔记 OC self&异常
2015-08-06 23:13
447 查看
------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------
1 self与super
① self调用自己方法,super调用父类方法② self是类,super是预编译指令
③ [self class]和[super class]输出是一样的
//Person.h
//person类的申明
#import <Foundation/Foundation.h>
@interface Person : NSObject
{
NSString *name;
int age;
}
-(void)setName:(NSString *)name andAge:(int)age;
+(void)showMessage;
@end
//Person.m
//person类的实现
#import "Person.h"
@implementation Person
-(void)setName:(NSString *)name andAge:(int)age{
// _name=name; 当实例变量与形参不同是可以直接赋值
// _age=age;
self.name=name; //当实例变量与形参相同则使用self赋值
self.age=age;
}
+(void)printInfo{
NSLog(@"Hello,World!");
}
+(void)showMessage{
[self printInfo]; //使用self调用类方法
}
@end
//main.m
//主函数源文件
#import <Foundation/Foundation.h>
#import "Person.h"
int main(int argc, const char * argv[]) {
Person *p=[[Person alloc]init];
[p setName:@"Kenshin" andAge:28];
[Person showMessage];
return 0;
2 异常处理
Object-C语言的异常处理符号和C++、JAVA相似。可使用NSException,NSError或者自定义的类。异常处理机制是由这个四个关键字支持的:@try,@catch,@thorw,@finally。捕获异常:
@try{ }
@catch(NSException*exception){ }
@finally{ }
抛出异常(@throw):
NSException*exception =
[NSException exceptionWithName: @“helloworldException"reason: @”illegal words” userInfo:nil];
@throwexception;
例如:
helloworld *h = [[helloworld alloc] init];
@try{
[h saysomething];
}
@catch(NSException*exception)
{
NSLog(@"main: Caught %@: %@", [exceptionname], [exceptionreason]);
}
@finally{
[h release];
}
总结:
self在对象中指代的是对象本身,self在类中指代的是类本身。故一个类中拥有同名的对象方法与类方法也不会调用出错。
异常处理用于设置可能出错的代码段,进行异常捕捉,便于代码的调试与修改。
相关文章推荐
- 我们到底在干什么? —— 一名普通程序员的心声
- 黑马程序员——Java集合框架(一)之迭代器、Collection层次结构等
- 黑马程序员————java基础之面向对象
- 黑马程序员--多态总结--java
- Web开发者职业生涯的11个阶段
- 黑马程序员——ios学习笔记 OC 继承
- 黑马程序员——ios学习笔记 OC 类
- 面试知识储备:新浪微博Android客户端的实现
- 黑马程序员---OC基础---Block、分类Category、协议protocol
- 【黑马程序员】Java笔记--多线程
- 程序员技术练级攻略
- 黑马程序员——单例设计模式
- java--反射--黑马程序员
- java--多线程(2)--黑马程序员
- java--多线程(1)--黑马程序员
- java--IO流(2)--黑马程序员
- java--IO流(1)--黑马程序员
- java--集合(2)--黑马程序员
- 15个程序员需要知道的Chrome扩展
- java--集合(1)--黑马程序员