Swift 4
Этот метод будет загружать изображение с сайта асинхронно и кэшировать его:
func getImageFromWeb(_ urlString: String, closure: @escaping (UIImage?) -> ()) {
guard let url = URL(string: urlString) else {
return closure(nil)
}
let task = URLSession(configuration: .default).dataTask(with: url) { (data, response, error) in
guard error == nil else {
print("error: \(String(describing: error))")
return closure(nil)
}
guard response != nil else {
print("no response")
return closure(nil)
}
guard data != nil else {
print("no data")
return closure(nil)
}
DispatchQueue.main.async {
closure(UIImage(data: data!))
}
}; task.resume()
}
При использовании:
getImageFromWeb("http://www.apple.com/euro/ios/ios8/a/generic/images/og.png") { (image) in
if let image = image {
let imageView = UIImageView(frame: CGRect(x: 0, y: 0, width: 200, height: 200))
imageView.image = image
self.view.addSubview(imageView)
} // if you use an Else statement, it will be in background
}
Я обычно имею
Project Directory src - actual source doc - documentation lib - libraries referenced from source dep - installation files for dependencies that don't fit in lib db - database installation script
В работе с Visual Studio, я не уверен, работает ли это то же в мире Java. Но я обычно помещал материал в различные папки проекта в src. Для каждого исходного проекта существует отдельный тестовый проект. Файлы типа "build" входят в основной каталог проекта. Я обычно помещал README, там слишком документирующий, как установить проект, если ему нужны больше, чем просто проверка.
РЕДАКТИРОВАНИЕ: Это - структура для единственного рабочего контроля проекта. Это будет дублировано для каждого ответвления/тега в Вашей системе управления версиями (помните в большей части системы SVN, копии являются дешевыми). Вышеупомянутый пример под Подверсией был бы похож:
/project
/trunk
/src
/doc
/...
/branches
/feature1
/src
/doc
/...
/feature2
/src
/doc
/...
Я нашел некоторые старые вопросы здесь на том, Так, чтобы могло бы быть интересным для Вас:
Подробно остановиться на том, что предложенный Mendelt Siebenga, я также добавил бы web
каталог (для файлов JSP, СЕТИ-INF, web.xml, и т.д.).
Тесты должны войти в папку, названную test
, который является одноуровневым элементом основного src
папка - этот способ, которым Ваши классы модульного теста могут иметь то же имя пакета как протестированный исходный код (для упрощения с ситуациями, где Вы хотите протестировать защищенные методы или классы, например... посмотрите FAQ JUnit для этого , и этот вопрос также на , Куда я должен поместить свои тестовые файлы? ).
у меня не было большого использования для него самого, но проект Знатока также создаст resources
папка вместе с src папкой для неисходного кода, который Вы хотите упаковать/развернуть наряду с основным исходным кодом - вещи, такие как файлы свойств, пакеты ресурсов, и т.д. Ваш пробег может варьироваться на этом.
Я использую Eclipse для создания веб-приложений J2EE, и это создаст следующую структуру проекта:
WebAppName\
\lib
\src
\tests
etc...
я затем создал бы папку SVN на нашей соединительной линии под названием WebAppNameProject. В этой папке я создал бы папки под названием WebAppNameSource, Документация и т.д. В папке WebAppNameSource, я помещу источник проекта, сгенерированный Eclipse. Таким образом у меня была бы следующая структура папок в SVN:
\svn\trunk\WebAppNameProject
\WebAppNameSource
\lib
\src
\tests
etc...
\Documentation
Hope это помогает.