标签:
1. Hello, World
#import <Foundation/Foundation.h>
int main()
{
/* my first program in Objective-C */
NSLog(
@"Hello, World! \n");
return 0;
}
2. Block(类似C的函数指针, JS closure, C++11的Lambda functions)
(1) example
__block int sum = 0;
int (^myblocks3) (int a, int b) = ^(int a, int b) {
sum = a+b;
return 3;
};
myblocks3(20, 30);
NSLog(@"sum is %d", sum);
(2) example
#import <Foundation/Foundation.h>
// 定义Blocks的typedef
typedef int (^SumBlockT) (int a, int b);
int main (int argc, const char * argv[])
{
@autoreleasepool {
// insert code here...
NSLog(@"Hello, World!");
void (^myblocks) (void) = NULL;
myblocks = ^(void) {
NSLog(@"in blocks");
}; // 给myblocks 赋值
NSLog(@"before myblocks");
myblocks(); // 执行myblocks;
NSLog(@"after myblocks");
/*
before myblocks
in blocks
after myblocks
*/
int (^myblocks2) (int a, int b) = ^(int a, int b) {
int c = a+b;
return c;
};
NSLog(@"before blocks2");
int ret = myblocks2(10, 20);
NSLog(@"after blocks2 ret %d", ret);
__block int sum = 0;
int (^myblocks3) (int a, int b) = ^(int a, int b) {
sum = a+b;
return 3;
};
myblocks3(20, 30);
NSLog(@"sum is %d", sum);
SumBlockT myblocks4 = ^(int a, int b) {
NSLog(@"c is %d", a+b);
return 0;
};
myblocks4(50, 20);
}
return 0;
}
3.语法糖
Objective-C 学习笔记
标签:
原文地址:http://www.cnblogs.com/awiki/p/5504779.html