У меня есть номер 12345678910111213, и мне нужно передать его одним методом (cellForRow) другому (метод действия кнопки). Самый простой способ, которым я пользовался, - передать его через тег кнопки. В этом случае это невозможно (?). Я также могу создать свойство для него, но как насчет инкапсуляции? Я хочу знать действительно ПРАВИЛЬНЫЙ (и, желательно, простой) способ делать такие вещи. Заранее спасибо!Работа с большими номерами
ответ
Ну, вы действительно можете привязать значение к UIButton
. Если у вас есть значение, которое вы хотите передать, и у вас есть ссылка на эту кнопку:
static char kMyObject;
objc_setAssociatedObject(myButton, &kMyObject, [NSNumber numberWithInt:myInt], OBJC_ASSOCIATION_RETAIN_NONATOMIC);
С другой стороны, когда вы получаете действие с помощью кнопки в качестве ID:
- (void)myAction:(id)sender
{
UIButton *myButton = (UIButton*)sender;
NSNumber *number=objec_getAssociatedOject(myButton,&kMyObject);
}
В этом integer, вы можете сохранить указатель (случай 32-разрядного адреса) в класс/структуру/независимо от того, что представляет bigint.
Например:
UIButton *button = [UIButton ...];
button.tag = (int)[[MyBigInt alloc] initWithString:@"12131312312312312"];
после:
MyBigInt *bigInt = (MyBigInt *)button.tag;
...
[bigInt release];
Вы не можете передать его в качестве тега, как сказал Саад. Здесь вы можете использовать NSDecimal numbers. @Saad не может использовать double, так как он потеряет точность.
Я собираюсь сделать некоторые предположения здесь, потому что я просто когда-то схожу.
- UIButton с действием находится в UITableViewCell.
- У вас есть базовый источник для всех ваших данных (т. Е. Массив со всеми вашими данными в нем).
- У вас есть легкий доступ к таблице TableView.
Во-первых, вам необходимо получить ячейку, которая содержит кнопку:
UITableViewCell *cell = nil;
for (UIView *view = sender; view; view = view.superview) {
if ([view isKindOfClass:[UITableViewCell class]]) {
cell = (UITableViewCell *)view;
break;
}
}
Далее, вам нужно, чтобы получить indexRow для этой ячейки:
NSIndexPath *indexPath = [self.tableView indexPathForCell:cell];
Наконец, вы должны получите доступ к вашим данным:
ModelClass modelObject* obj = [self.data objectAtIndex:indexPath.row];
Теперь вы можете внести любые изменения вам нужна ваша модель.
Извините, это не так просто, но насколько я могу судить, это правильный способ получить доступ к модели из ячейки таблицы. Я создал категорию для UIView, которая имеет метод -cellSuperview для выполнения первой части.Затем я создал метод -objectForSender: в контроллере, поэтому мне не нужно писать этот код для каждого действия. –
- 1. Работа с чрезвычайно большими номерами
- 2. Groovy - работа с большими номерами
- 3. Работа с большими номерами на yAxis
- 4. Работа с большими номерами в Haskell
- 5. Операции с большими номерами
- 6. Расчет с очень большими номерами
- 7. Как работать с большими номерами?
- 8. Манипулировать нерабочим с большими номерами
- 9. Текстовое центрирование с большими номерами?
- 10. Вычисление дисперсии с большими номерами
- 11. Работа с большими файлами
- 12. Работа с большими числами
- 13. Работа с номерами версий
- 14. Работа с большими файлами csv
- 15. Работа с большими целыми массивами
- 16. Работа с очень большими числами
- 17. Работа с большими строками/массивами?
- 18. Работа с большими массивами - OutOfRam
- 19. Работа с большими приложениями JavaScript
- 20. Работа с большими текстовыми файлами?
- 21. Работа с большими данными обучения
- 22. Работа с большими * .bz2 (Википедия)
- 23. MySQL между функцией с большими номерами
- 24. Highcharts плохой рендеринг с небольшими большими номерами
- 25. Java - Рассчитайте с сумасшедшими большими номерами
- 26. Улучшение производительности добавления с очень большими номерами
- 27. Parse JSON с большими номерами javascript
- 28. , работающий с невероятно большими номерами в .NET.
- 29. многочлены с большими номерами в R
- 30. BigDecimal.movePointRight() зависает с очень большими номерами
цифры могут отличаться от ячейки к ячейке ... – Stas
@Zaph спасибо ... – Peres
@Stas Я просто объясню, как вы можете передать значение. Как вы на самом деле заполняете свои ячейки и как вы упорядочиваете цифры, зависит от вас ... – Peres