Чтобы удалить любой файл cookie http, если мы просто попытаемся удалить его из ответа [используя res.clearCookie("key")
], он определенно не будет работать. В действительности, чтобы удалить http cookie, домен и путь очень важны.
Домен и путь определяют область действия cookie. По сути, они, по сути, говорят браузеру, к какому веб-сайту принадлежит cookie. Отправка того же значения cookie с помощью; добавление expires также является плохой идеей, поскольку вы хотите, чтобы содержимое было уничтожено, но этого не произойдет.
Лучшей идеей будет сделать файл cookie недействительным, установив пустое значение и включив поле expires, как показано ниже:
res.cookie("key","empty the key content", {expires:old date, domain:'.example.com', path:'/'});
res.cookie("token", "", { expires: new Date(0),domain:'.test.com', path: '/' });
Надеюсь, это поможет !!!
Вам потребуется реализовать метод обработки событий UIControl в вашем представлении контроллер и установите его как обработчик для всех ваших кнопок. т.е. внутри вашей функции -tableView: cellForRowAtIndexPath:
вы должны сделать что-то вроде:
[theCell.button addTarget: self
action: @selector(buttonPressed:withEvent:)
forControlEvents: UIControlEventTouchUpInside];
Тогда ваш обработчик событий будет выглядеть так:
- (void) buttonPressed: (id) sender withEvent: (UIEvent *) event
{
UITouch * touch = [[event touches] anyObject];
CGPoint location = [touch locationInView: self.tableView];
NSIndexPath * indexPath = [self.tableView indexPathForRowAtPoint: location];
/* indexPath contains the index of the row containing the button */
/* do whatever it is you need to do with the row data now */
}
Несколько мыслей:
Вы можете перебирать иерархию супервизора кнопки, пока не найдете UITableViewCell, затем вызовите - (NSIndexPath *) indexPathForCell: (UITableViewCell *) ячейка в UITableView.
- (void)buttonClicked:(id)sender {
UIView *button = sender;
for (UIView *parent = [button superview]; parent != nil; parent = [parent superview]) {
if ([parent isKindOfClass: [UITableViewCell class]]) {
UITableViewCell *cell = (UITableViewCell *) parent;
NSIndexPath *path = [self.tableView indexPathForCell: cell];
// now use the index path
break; // for
}
}
}
В качестве альтернативы можно использовать тег кнопки для хранения индекса, ссылающегося на строку. Он содержит только одно целое число, поэтому он имеет наибольший смысл, когда у вас есть один раздел или когда вы управляете своими строками как плоским списком.
Вы также можете создать подкласс UITableViewCell, чтобы инкапсулировать кнопку. Ваш UITableViewCell может реагировать на события кнопки и ретранслировать событие своему собственному делегату, передавая self. Затем делегат события может вызвать - (NSIndexPath *) indexPathForCell: (UITableViewCell *) ячейку в UITableView, чтобы получить путь индекса.
Когда вы выбираете ячейку в tableView, вызывается следующий метод:
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
для доступа к номеру раздела: int section = indexPath.section;
для доступа к строке число (в правильном разделе): int row = indexPath.row;
UITableView может преобразовывать координату CGPoint в indexPath :
-(NSIndexPath *)indexPathForRowAtPoint:(CGPoint)point
Добавить переменную экземпляра can вашего подкласса UITableViewCell Чтобы сохранить индексный путь ячейки:
NSIndexPath *myIndexPath;
Когда вы создаете ячейку:
cellForIndexPath:
передайте индексный путь к вновь созданной / переработанной ячейке .
Теперь, когда вы нажимаете кнопку, просто считывайте путь индекса из ivar вашей ячейки.