Tim Cook talked about Apple
See the video here: Tim Cook on Steve Jobs , Apple TV and Facebook: The D10 highlights
Mary Meeker release Internet trends of 2012
See this 98 pages report:
Life is like a box of chocolates…
WWDC 2012 will be open within 3 weeks, I’d like to have a WWDC2012 eve party at my company Voyage Group. iOS developers who can go WWDC from Tokyo, if you have time on Friday, June 1st evening, please come!
Please visit: ATND and register yourself.
includes: * Free beer/Free softdrink * Free Pizza/Sushi
June 1st, 2012 7pm~10pm
AJITO of Voyage Group 〒150-0045 8F 8-16 Shinsen-cho Shibuya-ku, Tokyo
OK, let’s meet up on June 1st, at 7:00pm
via NedraI via CC License
Here is the funny question:
Is there any object in Cocoa/Objective-C that is a object but you do not use
*to indicate it?
Now, think a few seconds before you read on: is there any such kind of objects?
NO? are you sure about that?
The answer is YES! Yeah, there is a such kind of object in Cocoa/Objective-C.
It is the Block object!
Block, a much more common name is Closure. As you can see from the wiki page, it is a non-standard extention to C/C++/Objective-C 2.0
Because it is an extension not only to Objective-C, but also to C/C++, so it has some special treatment.
To indicate a piece of code as a Block(or a Closure), it DOES need something like a pointer, but not a normal pointer. It act as a function pointer, but much more powerful.
So Apple introduced
^ as a replacement of
* to Block.
^ == *
As we can see,
^ is also a pointer, so why do we need another
* to pointer to a Block?
typedef void (^MyBlock)(void); - (void)doSomethingWith:(MyBlock)block;
typedef void (^YourBlock)(void); @property (nonatomic, copy) YourBlock block;
typedef void (^HisBlock)(void); void myfunction(HisBlock block);
Note that, none of above is using
* to indicate a block, because the
typedef has already indicated it is an object.