Отобразите изображение или UIImage с простым CALayer

Google на "экспоненциальное представление regexp" шоу много соответствий, включая этот ( не используют его!!!! ), который использует

*** warning: questionable ***
/[-+]?[0-9]*\.?[0-9]+([eE][-+]?[0-9]+)?/

, который включает случаи, такие как-.5e7 и +00000e33 (оба из которых Вы не можете хотеть позволять).

Вместо этого я был бы высоко , рекомендуют использовать синтаксис на Doug Crockford веб-сайт JSON , который явно документы, что составляет число в JSON. Вот соответствующая схема синтаксиса, взятая от той страницы:

alt text
(источник: json.org )

при рассмотрении строки 456 из его сценарий json2.js (безопасное преобразование в JSON в JavaScript) Вы будете видеть эту часть regexp:

/-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/

, который по иронии судьбы не соответствует его схеме синтаксиса.... (похож, я должен зарегистрировать ошибку), я верю regexp, который действительно реализует ту схему синтаксиса, этот:

/-?(?:0|[1-9]\d*)(?:\.\d*)?(?:[eE][+\-]?\d+)?/

и если Вы хотите позволить начальную букву + также, Вы добираетесь:

/[+\-]?(?:0|[1-9]\d*)(?:\.\d*)?(?:[eE][+\-]?\d+)?/

Добавляют круглые скобки получения к Вашей симпатии.

я также настоятельно рекомендовал бы, чтобы Вы изложили в деталях набор тестовых сценариев, чтобы гарантировать, чтобы Вы включали те возможности, которые Вы хотите включать (или не включать), такие как:

allowed:
+3
3.2e23
-4.70e+9
-.2E-4
-7.6603

not allowed:
+0003   (leading zeros)
37.e88  (dot before the e)

Удачи!

25
задан nevan king 3 January 2014 в 17:06
поделиться

1 ответ

Я бы также предложил Простой , взгляните на учебник , там и решите сами. Список рассылки очень отзывчив, и вы всегда получите быстрый ответ на любые вопросы.

)

  //: Playground - noun: a place where people can play
import UIKit

if let backgroundImage = UIImage(named: "FrogAvatar") // you will have to provide your own image in your playground's Resource file
{
    let height = backgroundImage.size.height
    let width = backgroundImage.size.width

    let aLayer = CALayer()
    let startFrame = CGRect(x: 0, y: 0, width: width, height: height)

    let aView = UIView(frame: startFrame)
    aLayer.frame = startFrame
    aLayer.contentsScale = aView.contentScaleFactor
    aLayer.contents = backgroundImage.cgImage
    aView.layer.addSublayer(aLayer)
    aView // look at this via the Playground's                   
54
ответ дан 28 November 2019 в 18:13
поделиться
Другие вопросы по тегам:

Похожие вопросы: