Лучший способ протестировать просмотр ссылок в подаче, используя Swift или Objective-CIOS

Программируем под IOS
Ответить Пред. темаСлед. тема
Anonymous
 Лучший способ протестировать просмотр ссылок в подаче, используя Swift или Objective-C

Сообщение Anonymous »

Я строю подачу со ссылками на мультимедийные активы. Если ссылка плохая, она не должна быть в канале, как видео, которое не воспроизводит или изображение, которое не загружается, является плохим пользовательским опытом. Канал получает телефон через 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
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «IOS»