标签: swift

在PHPhotoLibrary中禁用对删除请求的确认

我想要做的是将视频保存到PHPhotoLibrary,然后在上传到应用程序中的客户端远程服务器时将其删除(基本上,照片库充当临时存储,以便在任何事情都失败的情况下添加额外的安全层(I已经将我的视频保存在应用程序目录中).

问题:

问题是要工作,一切都必须在没有用户输入的情况下工作.您可以将视频写入照片库,如下所示:

func storeVideoToLibraryForUpload(upload : SMUpload) {

    if PHPhotoLibrary.authorizationStatus() != PHAuthorizationStatus.Authorized {

        // Don't write to library since this is disallowed by user
        return
    }

    PHPhotoLibrary.sharedPhotoLibrary().performChanges({ () -> Void in

        // Write asset
        let assetRequest = PHAssetChangeRequest.creationRequestForAssetFromVideoAtFileURL(NSURL(fileURLWithPath: upload.nonsecureFilePath!)!)
        let assetPlaceholder = assetRequest.placeholderForCreatedAsset
        let localIdentifier = assetPlaceholder.localIdentifier

        // Store local identifier for later use
        upload.localAssetIdentifier = localIdentifier

    }, completionHandler: { (success, error) -> Void in
        ....
    })
}
Run Code Online (Sandbox Code Playgroud)

这完美无瑕地工作,我得到本地标识符,我存储它供以后使用..独角兽和彩虹.

现在,当我想在上传完成后立即删除该视频时,我会调用以下内容:

func removeVideoFromLibraryForUpload(upload : SMUpload) {

    // Only proceed if there …
Run Code Online (Sandbox Code Playgroud)

ios swift phphotolibrary

9
推荐指数
1
解决办法
2446
查看次数

iOS/Swift - 向下/向上滚动时隐藏/显示UITabBarController

我对iOS开发很新.现在我正在尝试隐藏我的标签栏,当我向下滚动时,向上滚动标签栏应该出现.我想像导航栏一样以动画制作动画.对于导航栏,我只需单击"属性"检查器中的选项.我看到了工具栏的一些示例,但我不能将其作为标签栏.

self.tabBarController?.tabBar.hidden = true 只是隐藏我的tabbar,但它不像导航控制器那样动画.

uitabbarcontroller show-hide uiscrollview ios swift

9
推荐指数
3
解决办法
2万
查看次数

iOS Swift - 在Instagram上分享字幕

我可以使用,在Instagram上成功分享图像UIDocumentInteractionController,但InstagramCaption密钥不起作用.这是我的代码:

self.controller = UIDocumentInteractionController()
// controller.delegate = self

self.controller.URL = fileUri

// HERE, the caption won't appear.
self.controller.annotation = NSDictionary(objectsAndKeys: "my caption", "InstagramCaption")

self.controller.UTI = "com.instagram.exclusivegram"
self.controller.presentOpenInMenuFromRect(CGRectZero, inView: self.view, animated: true)
Run Code Online (Sandbox Code Playgroud)

我究竟做错了什么?

ios uidocumentinteraction instagram swift

9
推荐指数
1
解决办法
3375
查看次数

在Swift中扩展通用整数类型

所以我试图用一些方便的函数来扩展Swift的整数类型,但是我还不清楚我应该扩展哪些协议.

作为一个例子,假设我想实现一个用于钳位值的函数(如果它小于最小值,则将其设置为该值,否则如果它大于最大值则将其设置为该值).我的第一个想法是做这样的事情:

extension Int {
    func clamp(minimum:Int, maximum:Int) {
        if self < minimum { return minimum }
        if self > maximum { return maximum }
        return self
    }
}
Run Code Online (Sandbox Code Playgroud)

这是一个简单的例子,但它说明了问题; 如果我现在想要调用它,UInt那么我自然也不能,所以我必须添加一个等价物UInt,但这对于UInt16等等不适用.

我认为我可以在链上向上扩展一些东西,然后使用泛型,但是IntegerType似乎无法扩展协议.

那么,是否有更合适的地方可以放置我的扩展程序?

protocols swift swift2 protocol-extension

9
推荐指数
2
解决办法
1894
查看次数

在Swift中使用NSStream连接到Redis服务器

大家好,标题提到我正试图用快速语言从我的Redis服务器发送和接收数据.我已经做了很多研究,我无法得到关于这个主题的好答案,我最接近的是NSStream或几个Github项目(其中大部分都有破碎的代码),我一直试图为3创建一个解决方案几天了,请有人帮忙.

端口6379Redis的连接要求:

  • TCP
  • Telnet(我最喜欢的)

问题:

  1. App Delegate Crash Thread 1:EXC_BAD_ACCESS(code=1, address=XXXXXXXX) SOMETIMES
  2. 没有数据返回

具有初始化的类(Redis): 最接近我可以达到我理解NSStream的过程的级别,但是再次在我的对话框中没有打印任何返回的内容,我无法弄清楚出了什么问题.

class Redis: NSObject, NSStreamDelegate {

     //Intilizing Stream & Requirement
     var endPoint: CFString?
     var onPort: UInt32?
     var inputStream: NSInputStream?
     var outputStream: NSOutputStream?
Run Code Online (Sandbox Code Playgroud)

服务器连接功能:

    func serverConnection(endPoint: CFString, onPort: UInt32){

        //Streams Init
        let Host: CFString = endPoint
        let Port: UInt32 = onPort
        var readStream: Unmanaged<CFReadStream>?
        var writeStream: Unmanaged<CFWriteStream>?

        //Bind Streams to Host and Port
        CFStreamCreatePairWithSocketToHost(kCFAllocatorDefault, Host, Port, …
Run Code Online (Sandbox Code Playgroud)

sockets nsstream redis ios swift

9
推荐指数
1
解决办法
2120
查看次数

Swift - 快照未渲染的视图会导致空快照

我的变种:

@IBOutlet weak var imageView: UIImageView!
Run Code Online (Sandbox Code Playgroud)

拍照功能:

func takePhoto(){
        let picker = UIImagePickerController()

        picker.delegate = self
        picker.sourceType = .Camera

        presentViewController(picker, animated: true, completion: nil)
    }
Run Code Online (Sandbox Code Playgroud)

错误信息:

快照未呈现的视图会导致空快照.确保在屏幕更新后快照或快照之前至少渲染了一次视图

有任何想法吗?

ios swift

9
推荐指数
1
解决办法
1万
查看次数

Facebook登录按钮在WKWebView中不起作用

我们正在开发iOS 8.0及更高版本的应用程序.此应用程序需要身份验证(或用户注册).在网站上,我们使用html表单注册和登录用户.这些形式是敏感的.用户还可以单击"使用Facebook登录"按钮以使用FB凭据登录.这个按钮是用FB的SDK for Javascript(v2.4)实现的

因此,我们不希望在我们的iOS应用程序上实现注册和日志的本机屏幕,但我们宁愿实现一个带有WKWebView元素的视图控制器来处理这种浏览体验.

但是,我们注意到,当用户点击"使用Facebook登录我"按钮时,没有任何反应.FB打开以询问用户登录和授予权限的典型弹出窗口永远不会出现.

以下是我们如何初始化WKWebView:

class LoginViewController: UIViewController, WKNavigationDelegate, WKUIDelegate {
var webView: WKWebView
@IBOutlet weak var cancelButton: UIButton!

override func viewDidLoad() {
    super.viewDidLoad()

    view.addSubview(webView)
    webView.setTranslatesAutoresizingMaskIntoConstraints(false)
    let height = NSLayoutConstraint(item: webView, attribute: .Height, relatedBy: .Equal, toItem: view, attribute: .Height, multiplier: 1, constant: 0)
    let width = NSLayoutConstraint(item: webView, attribute: .Width, relatedBy: .Equal, toItem: view, attribute: .Width, multiplier: 1, constant: 0)
    view.addConstraints([height, width])

    loadDefaultUrl()
}

required init(coder aDecoder: NSCoder){
    let config = WKWebViewConfiguration()
    config.preferences.javaScriptCanOpenWindowsAutomatically = …
Run Code Online (Sandbox Code Playgroud)

ios facebook-javascript-sdk swift

9
推荐指数
3
解决办法
4652
查看次数

在iPhone 6 plus中使用SIGTRAP的iOS应用程序崩溃?

我有一个用swift编写的应用程序,它使用AFNetwork和其他一些用Obj编写的帮助程序.在我的客户端设备(iPhone 6+)上他收到了一个SIGTRAP错误,我试图在我们拥有的测试设备和所有模拟器上重新创建问题,但无法重新创建它.

下面是堆栈跟踪,它崩溃了两次:http: //paste.ubuntu.com/12077304/ 当我象征崩溃报告时,它指向:

-[Instagram getOwnBaseUrl] (in DiaryApp) (Instagram.m:118)
Run Code Online (Sandbox Code Playgroud)

在第二个实例中,它指向:

[UIAlertView(AFNetworking) showAlertViewForTaskWithErrorOnCompletion:delegate:cancelButtonTitle:otherButtonTitles:]_block_invoke (in DiaryApp) (UIAlertView+AFNetworking.m:72)
Run Code Online (Sandbox Code Playgroud)

崩溃日志:http://paste.ubuntu.com/12077328/

我无法确定崩溃的确切原因.在这方面的任何帮助将受到高度赞赏.

谢谢.

iphone objective-c symbolicatecrash ios swift

9
推荐指数
1
解决办法
1万
查看次数

iOS:如何将视频PHAsset转换为NSData

我想将存储在iPhone上的视频放到我的Google云端硬盘中.我已经完成了图像,但对于视频,这是另一个问题...

对于图像,没问题,我用这种方法将我的资产转换为NSData:

   data = UIImagePNGRepresentation(result!)!
Run Code Online (Sandbox Code Playgroud)

我把图像放到我的驱动器上!

但是,对于视频,我尝试了许多不同的方式,但不,我不能.

我能怎么做 ?

非常感谢 !

cloud video ios swift phasset

9
推荐指数
1
解决办法
1万
查看次数

如果在协议扩展中定义静态方法,如何在协议上调用静态方法?

protocol Car {
    static func foo() 
}

struct Truck : Car {

}

extension Car {
    static func foo() {
        print("bar")
    }
}

Car.foo() // Does not work  
// Error: Car does not have a member named foo

Truck.foo() // Works
Run Code Online (Sandbox Code Playgroud)

Xcode Car.foo()正确地自动填充,所以我要问的是它是否是一个不能编译的错误(说它没有一个名为foo()的成员).如果在协议扩展中定义静态方法,可以直接在协议上调用静态方法吗?

protocols swift swift2 protocol-extension

9
推荐指数
1
解决办法
3302
查看次数