[英]mutableCopy of NSInteger
I'm trying to make a mutableCopy of an NSInteger
?.我正在尝试制作NSInteger
的 mutableCopy ?。 However, since an NSInteger
is a non-mutable object this doesn't work.但是,由于NSInteger
是非可变对象,因此这不起作用。 If I don't make a mutableCopy of the row variable the UIPickerView
jumps to the next row when selecting one.如果我不制作行变量的 mutableCopy,则UIPickerView
在选择一行时会跳转到下一行。
Here my code:这是我的代码:
- (void)pickerView:(UIPickerView *)pickerView didSelectRow: (NSInteger)row inComponent:(NSInteger)component
{
if (pickerView == _frequencyPicker) {
[_detailTableViewController.currentAlarm.cycles replaceObjectAtIndex:0 withObject:[NSNumber numberWithInteger:row]];
[self.tableView reloadData];
} else {
int rowNumber = (int)row;
// -> mutableCopy
rowNumber++;
NSLog(@"%s:%d",__PRETTY_FUNCTION__,rowNumber);
[_detailTableViewController.currentAlarm.cycles replaceObjectAtIndex: withObject:[NSNumber numberWithInteger:row]];
[self.tableView reloadData];
}
}
Since you are using NSInteger
, not NSNumber
, you can rewrite your code without declaring and incrementing a primitive variable, like this:由于您使用的是NSInteger
,而不是NSNumber
,因此您可以在不声明和增加原始变量的情况下重写代码,如下所示:
[_detailTableViewController.currentAlarm.cycles
replaceObjectAtIndex:0
withObject:@(row+1)];
[self.tableView reloadData];
Since NSInteger
is a typedef
for a primitive type, mutability considerations do not apply here.由于NSInteger
是原始类型的typedef
,因此此处不适用可变性考虑。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.