NSInteger CGFloatなどの型
64bit環境では CGFloatはdouble型!
#if defined(__LP64__) && __LP64__
# define CGFLOAT_TYPE double
# define CGFLOAT_IS_DOUBLE 1
# define CGFLOAT_MIN DBL_MIN
# define CGFLOAT_MAX DBL_MAX
#else
# define CGFLOAT_TYPE float
# define CGFLOAT_IS_DOUBLE 0
# define CGFLOAT_MIN FLT_MIN
# define CGFLOAT_MAX FLT_MAX
#endif
typedef CGFLOAT_TYPE CGFloat;
あるところで
- (CGFloat) tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section
と書くべきところを
- (float) tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section
と書いていただけで、ヘッダーの高さがすべて0に...
#if __LP64__ || (TARGET_OS_EMBEDDED && !TARGET_OS_IPHONE) || TARGET_OS_WIN32 || NS_BUILD_32_LIKE_64
typedef long NSInteger;
typedef unsigned long NSUInteger;
#else
typedef int NSInteger;
typedef unsigned int NSUInteger;
#endif
同様にNSInteger
も long
になっています.
int index = [someArray indexOfObject: someObj];
if ( index != NSNotFound) { ... }
の ( index != NSNotFound)
は常にtrue
になるので注意が必要.