Я реализовал AFNetworking
без подклассов AFHTTPClient
, частично используя следующий код в моем DownloadQueueManager
:AFNetworking проверка доступности
-(void)downloadPodcastAt:(NSString *)url toPath:(NSString *)path
{
NSURLRequest *request = [NSURLRequest requestWithURL:[NSURL URLWithString:url]
cachePolicy:NSURLRequestReturnCacheDataElseLoad
timeoutInterval:60.0];
AFHTTPRequestOperation *operation = [[AFHTTPRequestOperation alloc] initWithRequest:request];
operation.outputStream = [NSOutputStream outputStreamToFileAtPath:path append:NO];
[operation setCompletionBlockWithSuccess:^(AFHTTPRequestOperation *operation, id responseObject)
{
[self saveQueuedItemInformation];
} failure:^(AFHTTPRequestOperation *operation, NSError *error)
{
// Other stuff
}];
[operation start];
}
Мой вопрос многогранен. Я googled до тех пор, пока мои пальцы не онемели и еще не нашли достойный образец кода, который просто и легко проверяет статус Достижимости, используя AFNetworking
. (Как ни странно, есть много дискуссий об импорте SystemConfiguration.framework
, который кажется неинтересным). Поэтому, если мой пользователь хочет свести к минимуму их использование данных и загружать только с помощью Wi-Fi, как я могу проверить наличие Wi-Fi и загружать только, если Wi-Fi доступен?
Во-вторых, кажется, что AFNetworking
хочет быть удобным интерфейсом. Но я мог бы использовать интерфейс для этого интерфейса, потому что там есть много вещей, которые нужно пробираться, чтобы добраться до нужного материала. Мне просто нужно получить доступ к URL-адресу, загрузить xml-файл (основанный на достижимости) и сделать с ним все. Я пропустил что-то, что делает это простой задачей?
Когда я это понимаю, я полностью строю интерфейс или пять, чтобы упростить реализацию (предполагая, что я не просто идиот). Заранее спасибо за любые ответы.
'Reachability' не является частью AFNetworking, вам придется полагаться либо на его уведомление, либо на проверку статуса [вручную] (http://stackoverflow.com/a/4186536/792677). Это имеет смысл, поскольку вы, возможно, захотите проверить подключение до того, как пользователь даже сможет попробовать что-то попробовать, а сетевые операции могут использовать кеш или вернуть ошибку. –
Но AFNetworking использует доступность и реализует что-то очень похожее на то, что реализует Reachability, чтобы проверить статус соединения. Мой вопрос в первую очередь заключался в том, как наиболее эффективно получить доступ к этим перечислимым переменным. – AMayes