@mrAlek ответ в Swift:
func mapView(mapView: MKMapView!, didAddAnnotationViews views: [AnyObject]!) {
println("didAddAnnotationViews()")
var i = -1;
for view in views {
i++;
let mkView = view as! MKAnnotationView
if view.annotation is MKUserLocation {
continue;
}
// Check if current annotation is inside visible map rect, else go to next one
let point:MKMapPoint = MKMapPointForCoordinate(mkView.annotation.coordinate);
if (!MKMapRectContainsPoint(self.mapView.visibleMapRect, point)) {
continue;
}
let endFrame:CGRect = mkView.frame;
// Move annotation out of view
mkView.frame = CGRectMake(mkView.frame.origin.x, mkView.frame.origin.y - self.view.frame.size.height, mkView.frame.size.width, mkView.frame.size.height);
// Animate drop
let delay = 0.03 * Double(i)
UIView.animateWithDuration(0.5, delay: delay, options: UIViewAnimationOptions.CurveEaseIn, animations:{() in
mkView.frame = endFrame
// Animate squash
}, completion:{(Bool) in
UIView.animateWithDuration(0.05, delay: 0.0, options: UIViewAnimationOptions.CurveEaseInOut, animations:{() in
mkView.transform = CGAffineTransformMakeScale(1.0, 0.6)
}, completion: {(Bool) in
UIView.animateWithDuration(0.3, delay: 0.0, options: UIViewAnimationOptions.CurveEaseInOut, animations:{() in
mkView.transform = CGAffineTransformIdentity
}, completion: nil)
})
})
}
}
JP, я попытался отредактировать ваш образец регулярных выражений, чтобы я мог искать дубликаты в любой строке, разделенной запятыми. Примерно так:
var valid = string.match( /(?:(?:^|, )([a-z]*))+$/ ) &&
!string.match( /([a-z]*).+?\1/ );
К сожалению, не удалось. Со мной Сила слаба. ;)
Еще раз спасибо за вашу помощь.
(GNU zip), как описано в RFC 1952 [25]. Этот формат представляет собой кодирование Лемпеля-Зива (LZ77) с 32-битным CRC. deflate
Формат «zlib», определенный в RFC 1950 [31], в сочетании с механизмом сжатия «deflate», описанным в RFC 1951 [ 29].
Итак, подведем итог:
gzip
- это формат файла GZIP . deflate
- это фактически формат данных ZLIB . (Но некоторые клиенты также принимают фактический формат данных DEFLATE для deflate
.) См. Также этот ответ на вопрос В чем разница между " gzip "и" deflate "кодировки HTTP 1.1? :
В чем разница между кодировками" gzip "и" deflate "HTTP 1.1?
" gzip "- это формат gzip, а"
Из моего минимального тестирования видно, что большинство HTTPds либо:
lighttpd Итак, чтобы отправить deflate на самый популярный сервер (Apache), вы должны поддерживать предварительно закодированные файлы и использовать mod_negotiate (возможно, вам даже придется использовать карты типов, чтобы предпочесть deflate).
I Думаю, из-за этой проблемы deflate используется редко, и поэтому ошибки более вероятно существуют в поддержке клиентского deflate, чем в поддержке gzip.
Насколько мне известно (отказ от ответственности: и я не эксперт здесь, как раз то, что я слышал), gzip
использует тот же алгоритм, что и deflate
, но в нем больше заголовков, из-за которых он имеет больший размер (по сравнению с deflate
). Однако я думаю, что deflate
поддерживается меньшим количеством клиентов и прокси.
Мне тоже было интересно :). Я думаю, это может быть связано с совместимостью старых (возможно, древних) браузеров. Я где-то читал, что старые браузеры с большей вероятностью будут выползать из-за дефлированного содержимого, которое mod_gzipped в определенных случаях (?), Но поиск в Google привел меня к выводу, что, вероятно, лучше прекратить поиск в Google.
Посетите этот веб-сайт для получения дополнительной информации: http://web.archive.org/web/20120321182910/http://www.vervestudios.co/projects/compression-tests
Deflate, согласно спецификации, на самом деле является zlib ( формат сжатия, разработанный специально для потоковой передачи контента через Интернет) ... который является оболочкой для deflate.
Internet Explorer, однако, неправильно реализует HTTP 1.1 deflate (zlib) как raw deflate. Так что, если ваш сервер отправляет корректный HTTP 1.1 deflate (zlib) контент в IE, он задыхается.
Я немного исследовал эту тему, и кажется безопасным ВСЕГДА отправлять raw deflate в современные браузеры ... просто убедитесь, что это на самом деле raw , а не zlib.
Дополнительную информацию см. в этой статье> Gzip vs Deflate (zlib) снова .
Так что я думаю что есть веская причина для продолжения отправки deflate через gzip.
ActionScript 3 имеет встроенную поддержку дефлейта, но для gzip необходимо использовать внешнюю библиотеку
.