В вашем случае, если вы рассматриваете его как завершение , это означает, что его нужно вызывать независимо от того, что происходит (успех неудачи с ошибкой), он должен возвращаться после завершения процесса .
Что вы можете сделать, это передать необязательные error
и product
закрытию завершения, а затем проверить, является ли ошибка nil
или нет:
func product(with id: String, _ completion: @escaping (Product?, Error?) -> ()) {
// in case of there is an error:
completion(nil, error)
return
// if things went happy:
completion(product, nil)
}
Вызов метод:
product(with: "ID") { (product, error) in
guard let returnedError = error else {
print(product)
return
}
print(returnedError)
}
или:
product(with: "ID") { (product, error) in
if let returnedError = error {
print(returnedError)
return
}
print(product)
}
Необходимо использовать веб-Ресурсы Части, которые могут быть связаны или встроены. Эта статья делает хорошее задание объяснения, как использовать их:
Встраивание CSS в webpart прекрасно, если Вы никогда не планируете изменить CSS для webpart.
Я рекомендовал бы, чтобы Вы включали CSS или в отдельный файл, хранивший в библиотеке стилей, или изменили файл CSS, связанный в макете страницы или основной странице (такой как core.css).
Просто определите уникальные классы для своего webpart при необходимости и оставьте определение того, как это представляет к каждому веб-сайту. Это позволяет различным областям Вашего SharePoint implemenation показывать тот же webpart по-разному.
Средства Вы никогда не должны будете выпускать dll для изменения незначительной проблемы стиля.
Это мой подход
protected override void CreateChildControls()
{
CssRegistration.Register("/_layouts/STYLES/WebPartName/styles.css");
}
Это гарантирует, что CSS регистрируется и включается только один раз, и дает возможность изменять CSS без повторного развертывания всей dll.
Вы также можете использовать:
HtmlLink linkCss = new HtmlLink();
//Defining attributes and values of the link tag
linkCss.Attributes.Add("href", "StyleSheet1.css");
linkCss.Attributes.Add("type", "text/css");
linkCss.Attributes.Add("rel", "Stylesheet");
//Add HtmlLink instance to the header of the current page
Page.Header.Controls.Add(linkCss);