IOS_OC_6-Blockタイプphotocoloプロトコル
1559 ワード
block
1,概要
blockはコードをカプセル化し、悪意を持っていつでも実行します.関数パラメータとして、または関数の戻り値として使用することができ、それ自体がパラメータに戻り値を入力することもできる.
2,blockの定義
protocol
1,概要
多くの方法を宣言するために使用することができます.この協定を遵守しなければ、協定のすべての方法を持っていることに相当します.彼の子類もこれらの方法を持っています.
2,プロトコルの定義と使用
注意:オブジェクト返却タイプNSObject*b=[[Book alloc]init];Java汎用と類似の制限クラスは、特定のプロトコルを遵守する必要があります.
1,概要
blockはコードをカプセル化し、悪意を持っていつでも実行します.関数パラメータとして、または関数の戻り値として使用することができ、それ自体がパラメータに戻り値を入力することもできる.
2,blockの定義
void (^myblock)(int) = ^(int a,int b){
int c = a+b;
NSLog(@" %i !",c);
};
int c = myblock(1);
typedef int (^myblock)(int a, int b);
myblock bloc = ^(int a,int b){
NSLog(@" :%i",1);
return a;
};
protocol
1,概要
多くの方法を宣言するために使用することができます.この協定を遵守しなければ、協定のすべての方法を持っていることに相当します.彼の子類もこれらの方法を持っています.
2,プロトコルの定義と使用
//
// MyProtocol.h
//
//
// Created by on 15/1/8.
// Copyright (c) 2015 zg. All rights reserved.
//
#import <Foundation/Foundation.h>
// NSObject
@protocol MyProtocol <NSObject>
@required//
- (void)test;
- (NSString *)test1;//
@optional//
- (id)test2:(int) age;
@end
//
// Book.h
//
//
// Created by on 15/1/8.
// Copyright (c) 2015 zg. All rights reserved.
//
#import <Foundation/Foundation.h>
@protocol MyProtocol.h;
@class Person;
@interface Book : NSObject<MyProtocol>// ,
{
double _price;
Person *_person;
BOOL _cheap;
}
@property (atomic,assign)double price;
@property (nonatomic,assign,getter=isCheap)BOOL cheap;
@end
注意:オブジェクト返却タイプNSObject