当用户尝试将视频上传到Quickblox服务器后,我的应用程序崩溃后,从库中选择视频。如果我们尝试上传从相机捕获的图像或视频,同样的方法可以完美地工作。想法?
环境详情
"QB-SDK" = "iOS 2.2.2";
"QuickBlox-REST-API-Version" = "0.1.1";
之前有效吗?
是
预期行为
视频应成功上传,否则应返回错误。
实际行为
应用程序崩溃。
日志
json: {"blob":{"name":"video","content_type":"video\/quicktime"}}
Request URL:https://api.quickblox.com/blobs.json
Request method: POST
Request parameters:{
blob = {
"content_type" = "video/quicktime";
name = video;
};
}
*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[__NSCFType _enableCropOverlayIfNecessary]: unrecognized selector sent to instance 0x7fcd54526650'
*** First throw call stack:
(
0 CoreFoundation 0x0000000105745d85 __exceptionPreprocess + 165
1 libobjc.A.dylib 0x0000000108f3bdeb objc_exception_throw + 48
2 CoreFoundation 0x000000010574ed3d -[NSObject(NSObject) doesNotRecognizeSelector:] + 205
3 CoreFoundation 0x0000000105694cfa ___forwarding___ + 970
4 CoreFoundation 0x00000001056948a8 _CF_forwarding_prep_0 + 120
5 PhotoLibrary 0x000000011f852a50 -[PLVideoRemaker _exportCompletedWithSuccess:] + 135
6 AssetsLibraryServices 0x0000000115768709 __pl_dispatch_async_block_invoke + 25
7 libdispatch.dylib 0x000000010a837d9d _dispatch_call_block_and_release + 12
8 libdispatch.dylib 0x000000010a8583eb _dispatch_client_callout + 8
9 libdispatch.dylib 0x000000010a8401ef _dispatch_main_queue_callback_4CF + 1738
10 CoreFoundation 0x000000010569f0f9 __CFRUNLOOP_IS_SERVICING_THE_MAIN_DISPATCH_QUEUE__ + 9
11 CoreFoundation 0x0000000105660b99 __CFRunLoopRun + 2073
12 CoreFoundation 0x00000001056600f8 CFRunLoopRunSpecific + 488
13 GraphicsServices 0x000000010afaead2 GSEventRunModal + 161
14 UIKit 0x000000010754bf09 UIApplicationMain + 171
15 MyApp 0x00000001043cc85f main + 111
16 libdyld.dylib 0x000000010a88d92d start + 1
)
libc++abi.dylib: terminating with uncaught exception of type NSException
重现行为的步骤
调用从库中挑选的视频的上传方法:
+ (QBRequest *)TUploadFile:(NSData*)data
fileName:(NSString*)fileName
contentType:(NSString*)contentType
isPublic:(BOOL)isPublic
successBlock:(void(^)(QBResponse *response, QBCBlob* blob))successBlock
statusBlock:(QBRequestStatusUpdateBlock)statusBlock
errorBlock:(void(^)(QBResponse *response))errorBlock;