id - C. , , cpp, :
autorelease_pool.hpp
class t_autorelease_pool {
public:
t_autorelease_pool();
~t_autorelease_pool();
private:
id d_pool;
private:
t_autorelease_pool(const t_autorelease_pool&);
t_autorelease_pool& operator=(const t_autorelease_pool&);
};
autorelease_pool.mm
t_autorelease_pool::t_autorelease_pool() : d_pool([NSAutoreleasePool new]) {}
t_autorelease_pool::~t_autorelease_pool() { [this->d_pool drain]; }
cpp:
void UpdateUI() {
t_autorelease_pool pool;
}
( ) ObjC, C:
#include <objc/runtime.h>
#include <objc/message.h>
...
id pool = objc_msgSend(objc_getClass("NSAutoreleasePool"), sel_getUid("new"));
objc_msgSend(pool, sel_getUid("drain"));