oc学习
2016-06-01 本文已影响0人
Jalon
@implementation 这种修饰器的方式可以声明类,在下面直接写方法,但是这种写法声明的类的成员变量不能被子类继承。
@implementation TBCChoicenessScrollPageItem
- (void)dealloc
{
self.tableView.delegate = nil;
self.tableView.dataSource = nil;
}
@end
[obj func:param] 其实可以使用点语法来写更适应,即obj.func.param
- (void)dealloc
{
// 在开始先销毁子类的空间占用
self.forumId = nil;
self.threadId = nil;
self.forumName = nil;
self.title = nil;
...
[super dealloc]; // 一定在最后销毁父类的空间
}
这些符号:
- :指针类型声明,所有的Objective-C对象变量都是指针类型的。
@ :表示这是o-c的,不然和c的区分不开
如 NSString *name = @"jalon";
NSNumber *age = @25;
NSArray *apps = @[@"AngryFowl", @"Lettertouch", @"Tweetrobot"];
NSDictionary *person = @{@"First Name": @"Eric"};
- :实例方法
- :静态方法
[]:调用方法
: :传参
description 方法 类似于 toString 可以 [myArray description] 来调用输出
执行方法的时候 用[obj func]中间的空格是调用的意思,如果想要字符串+字符串 都得特么的 说实话 真的很低级,还有没有更好的办法。
NSString *fullName = [firstName stringByAppendingString:lastName];
NSString *fullName = [[firstName stringByAppendingString:@" "] stringByAppendingString:lastName];
类型:
NSUInteger 定义整型int 用%lu来代替%@ 打印
NSString 定义字符串
NSArray 定义数组
BOOL 定义YES NO
NSDictionary 定义字典 类似于json
NSNumber
NSNumber 是一個儲存數字的 Object,NSNumber 不像 C 語言的 int ,不能直接拿來做加、減、乘、除,如果你想簡單一點使用數字的處理,可以使用另一個 Object : *NSInteger*。
---
block
myBlock = ^( int paramA )
{
return [ NSString stringWithFormat: @"Passed number: %i", paramA ];
};
NSArray *newHats = @[@"Cowboy", @"Conductor", @"Baseball",@"Beanie", @"Beret", @"Fez"];
[newHats enumerateObjectsUsingBlock:^(NSString *hat, NSUInteger index, BOOL *stop){
NSLog(@"Trying on hat #%lu: %@", index+1, hat);
}];
---
类接口定义:
@interface 类名:父类名{
变量定义;
}
方法定义;
@end;
定义值或者说返回值写在括号里
前面带有减号(-) 的方法为实例方法,必须使用类的实例才可以调用的。对应的有+号, 代表是类的静态方法,不需要实例化即可调用。
- 实例方法
- 类的静态方法
-(void) HelloWorld:(BOOL)ishelloworld{
//干点啥
}
Objective-C中,调用方法被称为**发送消息** ,通知对象执行某种操作。
方括号实例化并传参调用,空格类似于 "." : 类似于括号传参
for (NSString *hat in newHats) {}
nil 类似于 null,YES类似true NO类似false或者0