• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

Objective-c语法快速记忆法

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

转自http://www.raywenderlich.com/4872/objective-c-cheat-sheet-and-quick-reference

 

Class Header (.h)

#import "AnyHeaderFile.h"

@protocol ClassNameDataSource, ClassNameDelegate;

//声明协议:
@protocal ClassNameDataSource <NSObject>

    @optional//选择实现

    - (NSUInteger)numberOfItemsInCarousel:(ClassName*)carousel;

    @required//必须实现

     -(id) copywithzone:(NSZone *) zone; //方法列表
@end

 

@protocal ClassNameDelegate <NSObject>

    @optional//选择实现

    - (NSUInteger)numberOfItemsInCarousel:(ClassName*)carousel;

    @required//必须实现

     -(id) copywithzone:(NSZone *) zone; //方法列表
@end

 

 

@interface ClassName : SuperClass {

//declare instance variables

 

    id<ClassNameDelegate> delegate;

    id<ClassNameDataSource> dataSource;

}

// define properties

//define methods (including any

//custom initializers)

@end

 

Class Implementation (.m)

 

#import "YourClassName.h"

 

@implementation ClassName

 

// synthesize properties

 

// implement methods (including any

//custom initializers, and dealloc)

@end

 

Defining Methods

- (anytype)doIt;

- (anytype)doItWithA:(anytype)a;

- (anytype)doItWithA:(anytype)a andB:(anytype)b;

 

Implementing Methods

 

- (anytype)doItWithA:(anytype)a andB:(anytype)b {

     // Do something with a and b...

      return retVal;

}

Dealloc

- (void)dealloc {

 

  // Release any retained variables...

    [super dealloc];

}

 

Creating a Class Instance

 

ClassName * myClass = [[ClassName alloc] init];

// myClass valid until you call:

[myClass release]; // Don’t need w/ ARC

ClassName * myClass = [[[ClassName alloc] init]autorelease];

// myClass valid until next run loop

 

Calling a Method

[myClass doIt];

[myClass doItWithA:a];

[myClass doItWithA:a andB:b];

 

Defining Properties

@property (attribute1, attribute2) propertyName;

 

retain | Call retain on assign

assign | Normal assign(default)

copy   | Make copy on assign

nonatomic |Make not threadsafe

readwrite | Create getter&setter(default)

readonly | Create just getter

 

Synthesizing Properties

 

@synthesize propertyName;

@synthesize propertyName =_myInstanceVariable;

Using Properties

[myClass setPropertyName:a];

myClass.propertyName = a; // alternative

a = [myClass propertyName];

a = test.propertyName; // alternative

 

Declaring Variables

anytype myVariable

int | 1,2,500,10000

float |   1.5,3.14,578.234

double  |

BOOL |  YES,NO,TRUE, FALSE

ClassName * |  NSString *,NSArray *,etc

id  | Can hold ref to any object

Custom Initializer Example

 

- (id)initWithParam:(anytype)param {

      if ((self = [super init])) {

          self.propertyName = param;

      }

     return self;

}

NSString Quick Examples

NSString *personOne = @"Ray";

NSString *personTwo = @"Shawn";

NSString *combinedString =[NSString stringWithFormat: @"%@: Hello, %@!", personOne, personTwo];

NSLog(@"%@", combinedString);

NSString *tipString = @"24.99";

float tipFloat = [tipString floatValue];

NSArray Quick Examples

NSMutableArray *array = [NSMutableArray arrayWithObjects:personOne, personTwo, nil];

[array addObject:@"Waldo"];

NSLog(@"%d items!", array.count);

for (NSString *person in array) {

  NSLog(@"Person: %@", person);

}

NSString *waldo = [array objectAtIndex:2];

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
Objective-C设计模式——抽象工厂模式AbstractFactory(对象创建)发布时间:2022-07-12
下一篇:
谈谈Objective-C链式语法的实现发布时间:2022-07-12
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap