用Java語言來說,OC中的Block有着類的感覺。但OC的類與block又有着不同之處,OC的類有.m
和.h
文件,即@interface
與@implementation
。而Block
卻沒有類,但是它有着屬性。舉個Block例子:
Bock基礎用法:
#import <Foundation/Foundation.h>
struct Books {
NSString *title;
NSString *author;
NSString *subject;
int book_id;
}
int main(){
struct Books Book1;
Book1.title = @"OC編程";
Book1.author =@"Cook";
Book1.subject = @"OC教程";
Book1.book_id = 88888;
NSLog(@"Book1 title : %@",Book1.title);
}
結構體作爲函數參數:
將結構體作爲函數參數傳遞,與傳遞變量或指針的方式非常相似。
#import <Foundation/Foundation.h>
/*結構聲明*/
struct Books {
NSString *title;
NSString *author;
NSString *subject;
int book_id;
}
@interface SampleClass : NSObject
/*函數聲明*/
- (void) printBook:(struct Books) book;
@end
@implementation SampleClass
- (void)printBook:(struct Books) book {
NSLog(@"Book title: %@",book.title);
}
@end
int main(){
struct Books book1;
book1.title = @"OC";
book.author = @"Cook";
book.subject = @"OC編程";
book.book_id = 88888;
SampleClass *splClass = [[SampleClass alloc] init];
[splClass printBook: book1];
return 0;
}
總結:OC的塊跟對象類似。以後用到的地方還是挺多的。
更多課程請訪問個人主頁:
公衆號: