Values of type 'NSInteger' should not be used as format arguments; add an explicit cast to 'long' instead的产生原因
#if __LP64__ || (TARGET_OS_EMBEDDED && !TARGET_OS_IPHONE) || TARGET_OS_WIN32 || NS_BUILD_32_LIKE_64
typedef long NSInteger;
#else
typedef int NSInteger;
#endif
因为在64位下,NSInteger被定义为long;
32位下,被定义为int;
所以在64为下:NSString *strUrl = [NSString stringWithFormat:@"%ld", (long)category];
#if __LP64__ || (TARGET_OS_EMBEDDED && !TARGET_OS_IPHONE) || TARGET_OS_WIN32 || NS_BUILD_32_LIKE_64
typedef long NSInteger;
#else
typedef int NSInteger;
#endif
因为在64位下,NSInteger被定义为long;
32位下,被定义为int;
所以在64为下:NSString *strUrl = [NSString stringWithFormat:@"%ld", (long)category];