我正在尝试访问照片库以在 swift 4 中导入个人资料图片。
但我收到了这个错误:
此应用程序已崩溃,因为它试图在没有使用说明的情况下访问隐私敏感数据。应用程序的 Info.plist 必须包含一个 NSPhotoLibraryUsageDescription 键和一个字符串值,向用户解释应用程序如何使用这些数据。
我以各种方式请求许可。
我尝试:
<key>NSPhotoLibraryUsageDescription</key>
<string>this permission for profile photo only</string>
Run Code Online (Sandbox Code Playgroud)
和代码:
let imagePicker = UIImagePickerController()
override func viewDidLoad() {
super.viewDidLoad()
imagePicker.delegate = self
}
@objc func importUserImage() {
print("import driver")
imagePicker.sourceType = .photoLibrary
imagePicker.allowsEditing = true
self.present(imagePicker, animated: true)
}
Run Code Online (Sandbox Code Playgroud)
我试试
<key>NSPhotoLibraryAddUsageDescription</key>
<string>this permission for profile photo only</string>
Run Code Online (Sandbox Code Playgroud)
我什至尝试在代码中做到这一点
import UIKit
import Photos
import UserNotifications
class LoginViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading …Run Code Online (Sandbox Code Playgroud) 我正在尝试使用核心图形和swift 3绘制单个直线.然而,当调用touchesmoved时,它会创建多条线而不是一条线.使用的代码如下:
import UIKit
class ViewController: UIViewController {
@IBOutlet weak var drawingPlace: UIImageView!
var startTouch : CGPoint?
var secondTouch : CGPoint?
override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) {
let touch = touches.first
startTouch = touch?.location(in: drawingPlace)
}
override func touchesEnded(_ touches: Set<UITouch>, with event: UIEvent?) {
for touch in touches{
secondTouch = touch.location(in: drawingPlace)
UIGraphicsBeginImageContext(drawingPlace.frame.size)
drawingPlace.image?.draw(in: CGRect(x: 0, y: 0, width: drawingPlace.frame.width, height: drawingPlace.frame.height))
let bezier = UIBezierPath()
bezier.move(to: startTouch!)
bezier.addLine(to: secondTouch!)
bezier.close()
bezier.lineWidth = 4
UIColor.blue.set()
bezier.stroke() …Run Code Online (Sandbox Code Playgroud)