在Swift中有可能吗?如果没有,那么有解决方法吗?
使用GCD时,我们希望等到两个异步块执行完成后再继续执行下一步.最好的方法是什么?
我们尝试了以下方法,但它似乎不起作用:
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_HIGH, 0), ^ {
// block1
});
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_HIGH, 0), ^ {
// block2
});
// wait until both the block1 and block2 are done before start block3
// how to do that?
dispatch_sync(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_HIGH, 0), ^ {
// block3
});
Run Code Online (Sandbox Code Playgroud) 如何使用ISO 8601和RFC 3339的格式标准生成日期时间戳?
目标是一个如下所示的字符串:
"2015-01-01T00:00:00.000Z"
Run Code Online (Sandbox Code Playgroud)
格式:
最佳案例:
我搜索过StackOverflow,Google,Apple等,并没有找到Swift的答案.
似乎最有前途的类NSDate,NSDateFormatter,NSTimeZone.
相关问答:如何在iOS中获得ISO 8601日期?
这是迄今为止我提出的最好的:
var now = NSDate()
var formatter = NSDateFormatter()
formatter.dateFormat = "yyyy-MM-dd'T'HH:mm:ss.SSS'Z'"
formatter.timeZone = NSTimeZone(forSecondsFromGMT: 0)
println(formatter.stringFromDate(now))
Run Code Online (Sandbox Code Playgroud) 如何将数据附加到现有数据POST NSURLRequest?我需要添加一个新参数userId=2323.
精简版:
当与自定义转换和UINavigationControlleriOS7 结合使用时,我遇到了自动布局顶部布局指南的问题.具体而言,顶级布局指南和文本视图之间的约束不受尊重.有没有人遇到过这个问题?
长版:
我有一个场景明确定义了约束(即顶部,底部,左侧和右侧),呈现如下视图:

但是当我在导航控制器上使用自定义转换时,顶部布局指南的顶部约束似乎关闭,它呈现如下,好像顶部布局指南位于屏幕顶部,而不是底部导航控制器:

使用自定义转换时,导航控制器的"顶部布局指南"似乎变得混乱.其余约束正确应用.如果我旋转设备并再次旋转它,一切都会突然正确呈现,所以看起来并不是没有正确定义约束.同样,当我关闭自定义转换时,视图会正确呈现.
话虽如此,当我运行时_autolayoutTrace报告UILayoutGuide对象受到影响AMBIGUOUS LAYOUT:
(lldb) po [[UIWindow keyWindow] _autolayoutTrace]
Run Code Online (Sandbox Code Playgroud)
但是每当我看到它们时,这些布局指南总是被报告为含糊不清,即使我已经确保没有遗漏约束(我已经习惯性地选择视图控制器并选择"为视图控制器添加缺少的约束"或选择全部控制和为他们做同样的事情).
在如何我正是这样做的过渡方面,我指定符合对象UIViewControllerAnimatedTransitioning的animationControllerForOperation方法:
- (id<UIViewControllerAnimatedTransitioning>)navigationController:(UINavigationController *)navigationController
animationControllerForOperation:(UINavigationControllerOperation)operation
fromViewController:(UIViewController*)fromVC
toViewController:(UIViewController*)toVC
{
if (operation == UINavigationControllerOperationPush)
return [[PushAnimator alloc] init];
return nil;
}
Run Code Online (Sandbox Code Playgroud)
和
@implementation PushAnimator
- (NSTimeInterval)transitionDuration:(id <UIViewControllerContextTransitioning>)transitionContext
{
return 0.5;
}
- (void)animateTransition:(id<UIViewControllerContextTransitioning>)transitionContext
{
UIViewController* toViewController = [transitionContext viewControllerForKey:UITransitionContextToViewControllerKey];
UIViewController* fromViewController = [transitionContext viewControllerForKey:UITransitionContextFromViewControllerKey];
[[transitionContext containerView] addSubview:toViewController.view];
CGFloat width = fromViewController.view.frame.size.width;
toViewController.view.transform = CGAffineTransformMakeTranslation(width, 0); …Run Code Online (Sandbox Code Playgroud) 所以这个HTML代码为我提交了正确格式的数据.
<form action="https://www.example.com/register.php" method="post" enctype="multipart/form-data">
Name: <input type="text" name="userName"><BR />
Email: <input type="text" name="userEmail"><BR />
Password: <input type="text" name="userPassword"><BR />
Avatar: <input type="file" name="avatar"><BR />
<input type="submit">
</form>
Run Code Online (Sandbox Code Playgroud)
我已经查看过很多关于如何在iOS上进行multipart/form-data POST的文章,但没有一篇真正解释如果有正常的参数以及文件上传怎么办.
你能帮我解决一下在Obj-C中发帖的代码吗?
谢谢!
我通过使用swift创建的API进行url调用,如下所示:
class API {
let apiEndPoint = "endpoint"
let apiUrl:String!
let consumerKey:String!
let consumerSecret:String!
var returnData = [:]
init(){
self.apiUrl = "https://myurl.com/"
self.consumerKey = "my consumer key"
self.consumerSecret = "my consumer secret"
}
func getOrders() -> NSDictionary{
return makeCall("orders")
}
func makeCall(section:String) -> NSDictionary{
let params = ["consumer_key":"key", "consumer_secret":"secret"]
Alamofire.request(.GET, "\(self.apiUrl)/\(self.apiEndPoint + section)", parameters: params)
.authenticate(user: self.consumerKey, password: self.consumerSecret)
.responseJSON { (request, response, data, error) -> Void in
println("error \(request)")
self.returnData = data! as NSDictionary
}
return self.returnData
}
} …Run Code Online (Sandbox Code Playgroud) 我有点混淆如何利用新的iOS 7 NSURLSession后台传输功能和AFNetworking(版本2和3).
我看到了WWDC 705 - What’s New in Foundation Networking会话,他们展示了应用程序终止甚至崩溃后继续下载的后台下载.
这是使用新的API application:handleEventsForBackgroundURLSession:completionHandler:以及会话的委托最终将获得回调并完成其任务的事实来完成的.
所以我想知道如何使用AFNetworking(如果可能的话)继续在后台下载.
问题是,AFNetworking方便地使用基于块的API来完成所有请求,但如果应用程序终止或崩溃,那些块也会消失.那么我该如何完成任务呢?
或者也许我在这里遗漏了一些东西......
让我解释一下我的意思:
例如,我的应用程序是一个照片消息应用程序,假设我有一个PhotoMessage代表一条消息的对象,并且此对象具有类似的属性
state - 描述照片下载的状态. resourcePath - 最终下载的照片文件的路径.因此,当我从服务器收到新消息时,我创建了一个新PhotoMessage对象,并开始下载其照片资源.
PhotoMessage *newPhotoMsg = [[PhotoMessage alloc] initWithInfoFromServer:info];
newPhotoMsg.state = kStateDownloading;
self.photoDownloadTask = [[BGSessionManager sharedManager] downloadTaskWithRequest:request progress:nil destination:^NSURL *(NSURL *targetPath, NSURLResponse *response) {
NSURL *filePath = // some file url
return filePath;
} completionHandler:^(NSURLResponse *response, NSURL *filePath, NSError *error) {
if (!error) {
// update the PhotoMessage …Run Code Online (Sandbox Code Playgroud) 我已经通过设置视图的图层属性看到了一些lagyness问题的修复
view.layer.shouldRasterize = YES;
Run Code Online (Sandbox Code Playgroud)
我在使用UICollectionView并准备单元格和设置属性时看到了很大的性能差异.
不确定其含义是什么.
得到解释会很棒.谢谢!
我正在使用Apple的Swift iOS教程.这是一个错误,
无法下标类型'[String:Any]'的值,其索引类型为'UIImagePickerController.InfoKey'
他们定义的功能如下.
func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String : Any]) {
// The info dictionary may contain multiple representations of the image. You want to use the original.
guard let selectedImage = info[UIImagePickerControllerOriginalImage] as? UIImage else {
fatalError("Expected a dictionary containing an image, but was provided the following: \(info)")
}
// Set photoImageView to display the selected image.
photoImageView.image = selectedImage
// Dismiss the picker.
dismiss(animated: true, completion: nil)
}
Run Code Online (Sandbox Code Playgroud)
我正在使用Xcode Version 10.0 beta 3,其中包括Swift …
ios ×7
objective-c ×4
swift ×4
afnetworking ×1
alamofire ×1
autolayout ×1
date ×1
http-post ×1
ios7 ×1
iso8601 ×1
nsurlrequest ×1
rasterizing ×1
rfc3339 ×1
time ×1
uiview ×1