Я строю подачу со ссылками на мультимедийные активы. Если ссылка плохая, она не должна быть в канале, как видео, которое не воспроизводит или изображение, которое не загружается, является плохим пользовательским опытом. Канал получает телефон через JSON из конечной точки без пользы WebSocket. Процесс синхронного преобразования, как только мы загрузили данные. < /p>
Вот рабочий процесс. Вы получаете объект JSON, такой как:
{"feed": [{"title": "Проверьте это видео", "videoSurl": "https://www.youtube.com/somevideo.mp4"}]}
arssy of hars of arssy of arssy of arssh (Synchronous) < /p>
< /li>
[*] Сохранить массив объектов подачи для ядра (синхронно) < /p>
< /li>
Отображение объектов с использованием nsfetchedresultscontroller. (Synchronous)
Внутри 3-до сохранения каждого элемента для данных основных данных может показаться логичным местом для проверки/проверки ссылок.-(void) saveFeed:(NSArray *)items inContext: (NSManagedObjectContext*) context
NSEntityDescription *entity = [NSEntityDescription entityForName:@"Videofeed" inManagedObjectContext:context];
items* item;
for (i=0;i
Функция a < /p>
@objc public extension NSString {
@available(iOS 13.0.0, *)
func fileExists(at surl: NSString) async throws -> Bool {
let str = self as String
guard let url = URL(string: str) else { return false }
var request = URLRequest(url: url)
request.httpMethod = "HEAD"
request.timeoutInterval = 1.0 // Adjust to your needs
let (_, response) = try await URLSession.shared.data(for: request)
return (response as? HTTPURLResponse)?.statusCode == 200
}
}
edit:
Я реализовал следующий код, в котором используется завершение, чтобы проверить действительный URL -адрес, и он возвращает кула Как я могу сделать это из Objective-c? < /P>
Функция B < /p>
@objc public extension NSString {
func foundValidFileAtSurl(completion:@escaping (Bool) -> ()) {
let str = self as String
if (self == "") {
completion(false)
}
if let url = URL(string: str) {
var request = URLRequest(url: url)
request.httpMethod = "HEAD"//confirm header not complete file
request.timeoutInterval = 1.0 // Adjust to your needs
let task = URLSession.shared.dataTask(with: request) {
data,response,error in
guard error == nil else { print(error ?? "error",error!.localizedDescription); return }
guard data != nil else { print("Empty data"); return }
// flag = ((response as? HTTPURLResponse)?.statusCode == 200)
completion((response as? HTTPURLResponse)?.statusCode == 200)
}
task.resume()
}
}
}
Подробнее здесь: https://stackoverflow.com/questions/789 ... bjective-c
Лучший способ протестировать просмотр ссылок в подаче, используя Swift или Objective-C ⇐ IOS
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Не удалось собрать модуль Objective-C при использовании Swift в модуле Objective-C.
Anonymous » » в форуме IOS - 0 Ответы
- 29 Просмотры
-
Последнее сообщение Anonymous
-