我已经实现了AFNetworking没有子类化AFHTTPClient,部分使用我的以下代码DownloadQueueManager:
-(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];
}
Run Code Online (Sandbox Code Playgroud)
我的问题是多方面的.我用google搜索"我的手指麻木了,还没有找到一个像样的代码样本,它可以简单轻松地检查可达性状态AFNetworking.(奇怪的是,有很多关于进口的讨论SystemConfiguration.framework,这看起来很简单).因此,如果我的用户想要最小化他们的数据使用,并且只使用wifi下载,我该如何检查wifi,并且只有在wifi可用时才下载?
其次,它似乎AFNetworking想成为一个用户友好的前端.但我实际上可以在这个前端使用前端,因为那里有很多东西,人们不得不通过它来获得所需的东西.我只需要访问一个url,下载一个xml文件(基于可达性),并用它做一些事情.我错过了一些让这项任务变得简单的事情吗?
当我理解这一点时,我完全建立了一个前端或五个来简化实现(假设我不仅仅是一个白痴).提前感谢您的回复.
我在使用NSURLSession资源库中的照片上传到服务器时遇到了一些问题.
起初NSURLSession不支持流式上传.我试图使用它时遇到异常:
@property (nonatomic, strong) NSURLSession *uploadSession;
...
_uploadSession = [NSURLSession sessionWithConfiguration:[NSURLSessionConfiguration
backgroundSessionConfiguration:kUploadBackgroundURLSessionIdentifier] delegate:self delegateQueue:nil];
...
NSURLSessionUploadTask *task = [self.uploadSession uploadTaskWithStreamedRequest:URLRequest];
Run Code Online (Sandbox Code Playgroud)
这是一个例外:
Terminating app due to uncaught exception 'NSGenericException', reason: 'Upload tasks in background sessions must be from a file'
Run Code Online (Sandbox Code Playgroud)
这真的很奇怪,因为Apple的手册不包含任何仅uploadTaskWithRequest:fromFile:用于后台会话的信息.如果我想从资源库上传真正庞大的视频文件怎么办?我应该先将它保存到我的tmp目录吗?
看起来唯一的理由就是使用uploadTaskWithRequest:fromFile:,对吗?但是我有一个问题,如果上传过程被中断并开始在后台上传下一部分,服务器如何知道该文件的哪一部分正在上传?
我应该为此管理一些事情吗?以前我在URL请求中使用了Content-Range,如果我想继续上传之前启动的文件的一部分.现在我不能这样做 - 我必须在创建上传任务之前创建一个URL请求,并且看起来NSURLSession必须自动为我做这样的事情?
有没有人做过这样的事情?谢谢
query_1 = db\\\n .Query([UserModel, func.count(FriendModel.friend_id)])\\\n .select_from(UserModel)\\\n .outerjoin(FriendModel, and_(UserModel.id==FriendModel.user_id))\\\n .group_by(FriendModel.user_id)\n s_1 = query_1.subquery(\'s_1\')\n print s_1.c.id\n query_2 = db\\\n .Query(FriendModel)\\\n .select_from(FriendModel)\\\n .outerjoin(s_1, FriendModel.user_id==s_1.c.id)\nRun Code Online (Sandbox Code Playgroud)\n\n帮助将两个查询放在一起。\n https://gist.github.com/vlikin/17d53440eeef7f4147b2
\n\nI receive such errors:\nInvalidRequestError: SQL expression, column, or mapped entity expected - got \'[<sqlalchemy.orm.attributes.InstrumentedAttribute object at 0x7f2e28e1b810>, <sqlalchemy.sql.functions.count at 0x7f2e236c3ed0; count>]\'\nRun Code Online (Sandbox Code Playgroud)\n\n或者
\n\nAttributeError: Neither \xe2\x80\x98count\xe2\x80\x99 object nor \xe2\x80\x98Comparator\xe2\x80\x99 object has an attribute \xe2\x80\x98_autoflush\xe2\x80\x99\nRun Code Online (Sandbox Code Playgroud)\n\n另外,由于 db.Query 而不是 db.session.query,我遇到了问题。我想使用 db.Query 因为它有分页:)
\n\n谢谢。
\n目前我已经创建了一个函数unwrapOptional来安全地解包流中的可选输入.
func unwrapOptional<T>(x: Optional<T>) -> Observable<T> {
return x.map(Observable.just) ?? Observable.empty()
}
let aOpt: String? = "aOpt"
_ = Observable.of(aOpt).flatMap(unwrapOptional).subscribeNext { x in print(x)}
let aNil: String? = nil
_ = Observable.of(aNil).flatMap(unwrapOptional).subscribeNext { x in print(x)}
let a: String = "a"
_ = Observable.of(a).flatMap(unwrapOptional).subscribeNext { x in print(x)}
// output
aOpt
a
Run Code Online (Sandbox Code Playgroud)
我想要存档的是创建一个方便的功能而不是使用flatMap(unwrapOptional),例如
Observable.of(a).unwrapOptional()
Run Code Online (Sandbox Code Playgroud)
我尝试过的东西,但它永远不会编译......
extension ObservableType {
func unwrapOptional<O : ObservableConvertibleType>() -> RxSwift.Observable<O.E> {
return self.flatMap(unwrapOptional)
}
}
Run Code Online (Sandbox Code Playgroud) 如何在流畅迁移中为非可选字段添加默认值?我目前有这个错误:
?? PostgreSQL Error: column "firstName" contains null values
Run Code Online (Sandbox Code Playgroud)
我唯一的选择是
public func field<T>(for key: KeyPath<Self.Model, T>, isIdentifier: Bool? = nil)
public func field<T>(for key: KeyPath<Self.Model, T>, type: Self.Model.Database.SchemaFieldType)
Run Code Online (Sandbox Code Playgroud)
编辑:感谢蒂姆的回答,解决方案是:
static func prepare(on conn: PostgreSQLConnection) -> Future<Void> {
return Database.update(User.self, on: conn) { builder in
builder.field(for: \User.firstName, type: .text, .default(.literal("")))
}
}
Run Code Online (Sandbox Code Playgroud) ios ×2
swift ×2
afnetworking ×1
background ×1
flask ×1
ios6 ×1
nsurlsession ×1
reachability ×1
rx-swift ×1
sqlalchemy ×1
subquery ×1
uploading ×1
vapor ×1
vapor-fluent ×1