謎のバグが出た時って、標準SDKのクラスがどういう状態にあるか知りたいじゃないですか。そんな時は、Objective-Cの柔軟さを生かしてインスタンス変数をのぞき見しちゃいましょう。
※typeEncodingをちゃんと検査すれば、どんなクラスにも対応出来るバージョンを用意出来ると思いますが、僕はそこまで必要なかったので以下の様にしています。
AKNViewController.m
#import <objc/runtime.h>
- (void)makeLoveWithObjc
{
UICollectionView *collectionView = /* YOUR CODE */;
unsigned int varCount;
Ivar *ivars = class_copyIvarList([UICollectionView class], &varCount);
for (int i = 0; i < varCount; i++) {
Ivar ivar = ivars[i];
const char* name = ivar_getName(ivar);
const char* typeEncoding = ivar_getTypeEncoding(ivar);
if( strcmp(name,"_collectionViewFlags") == 0 ){
NSLog(@"%s: %s", name, typeEncoding);
}else{
id var = object_getIvar(collectionView, ivar);
NSLog(@"%s: %@", name, var);
}
}
free(ivars);
}