Closed jiangleligejiang closed 5 years ago
该种定义能很好地表明数值与类型之间的关系 if (cell.accessoryView) { rightSystemViewsWidth += 16 + CGRectGetWidth(cell.accessoryView.frame); } else { static const CGFloat systemAccessoryWidths[] = { [UITableViewCellAccessoryNone] = 0, [UITableViewCellAccessoryDisclosureIndicator] = 34, [UITableViewCellAccessoryDetailDisclosureButton] = 68, [UITableViewCellAccessoryCheckmark] = 40, [UITableViewCellAccessoryDetailButton] = 48 }; rightSystemViewsWidth += systemAccessoryWidths[cell.accessoryType]; } 避免使用OC类型作为值类型,否则可能出现野指针问题 NSString *const keyArr[] = { [TestTypeOfOne] = @"testvalue1", [TestTypeOfTwo] = @"testvalue2", [TestTypeOfThree] = @"testvalue3"};
该种定义能很好地表明数值与类型之间的关系
if (cell.accessoryView) { rightSystemViewsWidth += 16 + CGRectGetWidth(cell.accessoryView.frame); } else { static const CGFloat systemAccessoryWidths[] = { [UITableViewCellAccessoryNone] = 0, [UITableViewCellAccessoryDisclosureIndicator] = 34, [UITableViewCellAccessoryDetailDisclosureButton] = 68, [UITableViewCellAccessoryCheckmark] = 40, [UITableViewCellAccessoryDetailButton] = 48 }; rightSystemViewsWidth += systemAccessoryWidths[cell.accessoryType]; }
NSString *const keyArr[] = { [TestTypeOfOne] = @"testvalue1", [TestTypeOfTwo] = @"testvalue2", [TestTypeOfThree] = @"testvalue3"};
NSString *value = keyArr[4]; //value会为野指针,导致crash
NSNumber
intergervalue
使用C数组来定义一些类型对应的值
NSString *value = keyArr[4]; //value会为野指针,导致crash