小编Pra*_*hwa的帖子

难以转换为Swift 3

从Swift 2转换为Swift 3(甚至在将edit-> convert - >转换为当前的swift语法之后),我遇到了很多错误.特别:

这个

在我下载此测试版Xcode 8.0并转换为Swift 3之前,我的项目总共显示了90个错误,这些错误在Swift 2中正常运行

这是我正在制造的转换错误吗?

swift swift3 ios10 xcode8

48
推荐指数
2
解决办法
5万
查看次数

如何使用AVCapturePhotoOutput

我一直在使用自定义相机,最近我和Swift 3一起升级到Xcode 8 beta.我原来是这样的:

var stillImageOutput: AVCaptureStillImageOutput?
Run Code Online (Sandbox Code Playgroud)

但是,我现在收到警告:

在iOS 10.0中不推荐使用'AVCaptureStillImageOutput':改用AVCapturePhotoOutput

由于这是相当新的,我没有看到很多关于此的信息.这是我目前的代码:

var captureSession: AVCaptureSession?
var stillImageOutput: AVCaptureStillImageOutput?
var previewLayer: AVCaptureVideoPreviewLayer?

func clickPicture() {

    if let videoConnection = stillImageOutput?.connection(withMediaType: AVMediaTypeVideo) {

        videoConnection.videoOrientation = .portrait
        stillImageOutput?.captureStillImageAsynchronously(from: videoConnection, completionHandler: { (sampleBuffer, error) -> Void in

            if sampleBuffer != nil {

                let imageData = AVCaptureStillImageOutput.jpegStillImageNSDataRepresentation(sampleBuffer)
                let dataProvider = CGDataProvider(data: imageData!)
                let cgImageRef = CGImage(jpegDataProviderSource: dataProvider!, decode: nil, shouldInterpolate: true, intent: .defaultIntent)

                let image = UIImage(cgImage: cgImageRef!, scale: 1, orientation: .right)

            }

        })

    }

} …
Run Code Online (Sandbox Code Playgroud)

camera avfoundation ios swift swift3

38
推荐指数
4
解决办法
4万
查看次数

Realm支持Swift 3.0

我想知道是否已经可以使用Realm和Swift 3.0的beta版.

虽然我在Realm repo中看到了RealmSwift-swift3.0目录,但我没有成功正确使用它.我应该如何从源代码安装它?

realm ios swift swift3

19
推荐指数
2
解决办法
9598
查看次数

类型'URL'没有成员'fileURL' - Swift 3

在Swift 2中,我使用了以下代码:

let path = NSBundle.mainBundle().pathForResource("Document", ofType: "pdf")!
let url = NSURL.fileURLWithPath(path)
webView.loadRequest(NSURLRequest(URL: url))
Run Code Online (Sandbox Code Playgroud)

现在,使用Xcode 8和Swift 3,Xcode自动将其转换为:

let path = Bundle.main.pathForResource("Translation", ofType: "pdf")!
let url = URL.fileURL(withPath: path)
webView.loadRequest(URLRequest(url: url))
Run Code Online (Sandbox Code Playgroud)

在第二行,声明url,Xcode给我以下错误:

类型"网址"没有会员'fileURL'

我该如何解决这个错误?谢谢!

url ios swift swift3

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

使用suiteName检测NSUserDefaults中的更改

在我的项目中,我使用app group将数据传输到apple watch!这看起来像这样

let sharedDefaults = NSUserDefaults(suiteName: "group.com.myappname.defaults")
sharedDefaults?.setObject(MyData, forKey: "DataKey")
sharedDefaults?.synchronize()
Run Code Online (Sandbox Code Playgroud)

在WKInterfaceController中,我使用以下代码获取数据:

let sharedDefaults = NSUserDefaults(suiteName: "group.com.myappname.defaults")
let MyData = sharedDefaults?.objectForKey("DataKey") as! [[AnyObject]]
Run Code Online (Sandbox Code Playgroud)

一切正常!

现在我尝试检测sharedDefaults中的数据?.objectForKey("DataKey")是否确实发生了变化.我尝试使用addObserver方法:

override func willActivate() {
NSUserDefaults(suiteName: "group.com.myappname.defaults")!.addObserver(self, forKeyPath: "DataKey", options: NSKeyValueObservingOptions.New, context: nil)
}

override func observeValueForKeyPath(keyPath: String?, ofObject object: AnyObject?, change: [String : AnyObject]?, context: UnsafeMutablePointer<Void>){
      print("Data Changed")
}
Run Code Online (Sandbox Code Playgroud)

但是"覆盖func observeValueForKeyPath"仅在WKInterfaceController激活时调用,并且当我在NSUserDefaults中更改数据时没有调用(suiteName:"group.com.myappname.defaults")

我也尝试使用NSNotificationCenter:

override func willActivate() {
let sharedDefaults = NSUserDefaults(suiteName: "group.com.myappname.defaults")
NSNotificationCenter.defaultCenter().addObserver(self, selector: #selector(userDefaultsDidChangeNotificationMethod(_:)), name: NSUserDefaultsDidChangeNotification, object: nil)
}

func userDefaultsDidChangeNotificationMethod(notification: NSNotification){
 print("Data Changed") …
Run Code Online (Sandbox Code Playgroud)

nsuserdefaults ios swift watchkit watchos-2

10
推荐指数
1
解决办法
625
查看次数

不符合协议'NSCoding' - Swift 3

我见过几个类似于我的问题; 然而,那些与swift 2/1有关,我目前正在使用swift 3.我相信Apple已经稍微改变了它.

class Person: NSObject, NSCoding {

    var signature: UIImage

    init(signature: UIImage) {
        self.signature = signature
    }

    required convenience init(coder aDecoder: NSCoder) {
        let signature = aDecoder.decodeObject(forKey: "signature") as! UIImage
        self.init(signature: signature)
    }

    func encodeWithCoder(aCoder: NSCoder) {
        aCoder.encode(signature, forKey: "signature")
    }

}
Run Code Online (Sandbox Code Playgroud)

你会注意到Swift 3现在如何强迫我使用required convenience init(而不是required init(.也许这与它有关.

我该如何解决这个问题?谢谢!

encoding nscoding ios swift swift3

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

如何使用自定义键盘 iOS 发送图像

我正在构建我的第一个自定义键盘。我正在使用 Swift 2 和 Xcode 7。我用它作为我的键盘

键盘

(我在 iPhone 上运行)当我点击外星人小脸时,我想要

  1. 带有该图像的小表情符号或

  2. 将图像(如果可能)插入到用户键入的位置。我已经尝试过这段代码

    let pasteboard: UIPasteboard = UIPasteboard.generalPasteboard()
    let image: UIImage = currentImage!
    let newImage = scaleImage(image, toSize: CGSize(width: 40, height: 40))
    let imgData: NSData = UIImagePNGRepresentation(newImage)!
    pasteboard.setData(imgData, forPasteboardType: UIPasteboardTypeListImage[0] as! String)
    
    let proxy = UITextDocumentProxy.self as! UITextDocumentProxy
    let data = pasteboard.string!
    print(data)
    proxy.insertText(data)
    
    Run Code Online (Sandbox Code Playgroud)

但我一直没有成功。当我 时print(data),我收到nil,然后是EXC_BAD_ACCESS下一行的 。我怎样才能实现我的两个目标中的一个?感谢您的帮助。

uiimage ios emoji swift custom-keyboard

6
推荐指数
1
解决办法
3497
查看次数

模糊地使用'observeSingleEvent(of :):

我想获得一些用户的个人资料图片.这是我开始的代码:

databaseRef.child("Users").queryOrderedByKey().observeSingleEvent(of: .childAdded) { (snapshot) in

}
Run Code Online (Sandbox Code Playgroud)

我正在尝试遵循Swift 2教程; 但是,我正在使用Swift 3.我已经尝试调整代码,但是我没有成功,因为我收到以下错误

模糊地使用'observeSingleEvent(of:with :)'

此错误在第一行.我该如何解决这个问题?谢谢!

ios firebase swift firebase-realtime-database swift3

6
推荐指数
1
解决办法
1775
查看次数

如何删除准备提交的应用程序 - iOS 8

我正在尝试提交一个苹果评论应用程序.我不小心开始准备两个​​提交的应用程序.我想删除它.有谁知道怎么样? 在此输入图像描述 这些是我提交的应用程序.我想删除它们.

抱歉.我上次不够具体.我做了一个应用程序.我开始尝试提交申请,但我开始做错了.我开始了一个新的,但这也是错的.在我记得两个应用都是版本1之前,"开发人员拒绝"这个想法很有帮助.

注意:它们都是不同的应用程序; 我想删除它们.

有谁知道如何删除它们,还是我应该随机重命名它们并忘记它们曾经存在过?

itunesconnect form-submit ios

5
推荐指数
1
解决办法
6790
查看次数

禁用特定文本字段的自定义键盘

我试图禁止用户在我的文本字段之一中使用自己的键盘。在进行研究时,我发现我需要以下代码来禁用自定义键盘:

func application(application: UIApplication, shouldAllowExtensionPointIdentifier extensionPointIdentifier: String) -> Bool {
    if extensionPointIdentifier == UIApplicationKeyboardExtensionPointIdentifier {
        return false
    }
    return true
}
Run Code Online (Sandbox Code Playgroud)

但是,我不想禁用所有文本字段的键盘。如何将其仅应用于特定文本字段?谢谢!

keyboard textfield ios swift

5
推荐指数
0
解决办法
124
查看次数