An Objective-C Primer(Chapter 2 of Objective-C Phrasebook)
2011-02-25 18:33
495 查看
#import <Foundation/Foundation.h>
int(^getCounter(void))(void)
{
__block int counter;
int(^block)(void)=^(void){ return counter++; };
return _Block_copy(block);
}
int main (void)
{
int (^block)(void) = getCounter();
block();
block();
NSCAssert(block() == 2, @"Block counted incorrectly");
int(^block2)(void) = getCounter();
block2();
block2();
NSCAssert(block2() == 2, @"Block didn't start from 0");
NSLog(@"%d", block2());
return 0;
}
int(^getCounter(void))(void)
{
__block int counter;
int(^block)(void)=^(void){ return counter++; };
return _Block_copy(block);
}
int main (void)
{
int (^block)(void) = getCounter();
block();
block();
NSCAssert(block() == 2, @"Block counted incorrectly");
int(^block2)(void) = getCounter();
block2();
block2();
NSCAssert(block2() == 2, @"Block didn't start from 0");
NSLog(@"%d", block2());
return 0;
}
相关文章推荐
- Memory Management(Chapter 3 of Objective-C Phrasebook)
- Common Objective-C Patterns(Chapter 4 of Objective-C Phrasebook)
- Manipulating Strings(Chapter 6 of Objective-C Phrasebook)
- Working with Collections(Chapter 7 of Objective-C Phrasebook)
- Numbers(Chapter 5 of Objective-C Phrasebook)
- C++_Primer_chapter18 7.3 链接指示:extern “C”
- c primer plus 4th edition Programing Exercises answer(Chapter 7)
- C++ Primer Chapter 2
- C++ Primer Chapter 12-2
- C++ Primer Chapter 15-1
- 《C++ Primer Plus(第6版)》编程练习代码 Chapter 4
- [primer] chapter-7 Functions
- C++ Primer 5e chapter 12
- C++ Primer Chapter 1
- C++ Primer Plus 第六版_编程练习(4)(Chapter_five 1-5)
- C++ Primer Chapter 8 stringstream 提供的转换或格式化
- C++ Primer Chapter 4
- C++ Primer Chapter 9-1
- C++ Primer Chapter 12-3
- C++ Primer Chapter 15-2