zoukankan      html  css  js  c++  java
  • Objectivec语法快速记忆法

    转自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];

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

  • 相关阅读:
    NumPy学习笔记 三 股票价格
    NumPy学习笔记 二
    NumPy学习笔记 一
    Raspberry Pi中可用的Go IDE:liteide
    数学公式字母发音
    Apache Avro# 1.8.2 Specification (Avro 1.8.2规范)二
    Apache Avro# 1.8.2 Specification (Avro 1.8.2规范)一
    用Go校验下载文件之SHA256
    垂直水平居中的几种方式,其他方式还有很多,不再列举
    vue-cli3 每次打包都改变css img js文件名,还有自带版本号
  • 原文地址:https://www.cnblogs.com/jiangshiyong/p/2669813.html
Copyright © 2011-2022 走看看