我如何精确复制数组?
我很难找到有关在Swift中复制数组的信息.
我试过用 .copy()
var originalArray = [1, 2, 3, 4]
var duplicateArray = originalArray.copy()
Run Code Online (Sandbox Code Playgroud) 我的应用只是风景.我将这样呈现AVCaptureVideoPreviewLayer:
self.previewLayer = [[AVCaptureVideoPreviewLayer alloc] initWithSession:session];
[self.previewLayer setBackgroundColor:[[UIColor blackColor] CGColor]];
[self.previewLayer setVideoGravity:AVLayerVideoGravityResizeAspect];
NSLog(@"previewView: %@", self.previewView);
CALayer *rootLayer = [self.previewView layer];
[rootLayer setMasksToBounds:YES];
[self.previewLayer setFrame:[rootLayer bounds]];
NSLog(@"previewlayer: %f, %f, %f, %f", self.previewLayer.frame.origin.x, self.previewLayer.frame.origin.y, self.previewLayer.frame.size.width, self.previewLayer.frame.size.height);
[rootLayer addSublayer:self.previewLayer];
[session startRunning];
Run Code Online (Sandbox Code Playgroud)
self.previewView的框架为(0,0,568,320),这是正确的.self.previewLayer记录一个(0,0,568,320)的帧,这在理论上是正确的.但是,相机显示在横向屏幕中间显示为纵向矩形,并且相机预览图像的方向错误90度.我究竟做错了什么?我需要相机预览层出现在全屏幕,在横向模式下,图像应正确导向.
我是以编程方式将UITapGestureRecognizer添加到我的一个视图中:
let gesture = UITapGestureRecognizer(target: self, action: #selector(self.handleTap(modelObj:myModelObj)))
self.imageView.addGestureRecognizer(gesture)
func handleTap(modelObj: Model) {
// Doing stuff with model object here
}
Run Code Online (Sandbox Code Playgroud)
我遇到的第一个问题是"#selector'的参数'没有引用'@Objc'方法,属性或初始值设定项.
很酷,所以我将@objc添加到handleTap签名:
@objc func handleTap(modelObj: Model) {
// Doing stuff with model object here
}
Run Code Online (Sandbox Code Playgroud)
现在我收到错误"方法无法标记为@objc,因为参数的类型无法在Objective-C中表示.
它只是建筑物地图的图像,其中一些图像指示了兴趣点的位置.当用户点击这些引脚中的一个时,我想知道他们挖掘了哪个兴趣点,并且我有一个描述这些兴趣点的模型对象.我使用这个模型对象给它在地图上的坐标图像,所以我认为将对象发送到手势处理程序是很容易的.
我试图将照片上传到Firebase,但它给了我这个错误.它在Xcode 10之前工作.我收到此错误:
'UIImageJPEGRepresentation'已被实例方法'UIImage.jpegData(compressionQuality :)'取代
我不知道如何使用这个功能.
import UIKit
import Firebase
class SignUpViewController:UIViewController {
@IBOutlet weak var profileImageView: UIImageView!
@IBOutlet weak var tapToChangeProfileButton: UIButton!
var continueButton:RoundedWhiteButton!
var imagePicker:UIImagePickerController!
override func viewDidLoad() {
super.viewDidLoad()
continueButton.addTarget(self, action: #selector(handleSignUp), for:
.touchUpInside)
let imageTap = UITapGestureRecognizer(target: self, action:
#selector(openImagePicker))
profileImageView.isUserInteractionEnabled = true
profileImageView.addGestureRecognizer(imageTap)
profileImageView.layer.cornerRadius = profileImageView.bounds.height / 2
profileImageView.clipsToBounds = true
imagePicker = UIImagePickerController()
imagePicker.allowsEditing = true
imagePicker.sourceType = .photoLibrary
imagePicker.delegate = self
}
func uploadProfileImage(_ image:UIImage, completion: @escaping ((_ url:URL?)->())) {
guard let uid = …Run Code Online (Sandbox Code Playgroud) 我试图计算两个日期之间的差异(一个是当前日期,另一个是来自datepicker),在几周和几天然后在标签上显示结果,这是我到目前为止所做的,我感谢更有经验的开发人员的帮助这里!
let EDD = datePicker.date
let now = NSDate()
let formatter = DateComponentsFormatter()
formatter.unitsStyle = .short
formatter.allowedUnits = [.day]
formatter.maximumUnitCount = 2
let string = formatter.string (from: now as Date, to: EDD)
label.text = string
Run Code Online (Sandbox Code Playgroud) 创建一个列表如下:
struct ContentView: View {
var body: some View {
List {
Section(header: Text("Header")) {
Text("Row 1")
Text("Row 2")
}
}
.listStyle(PlainListStyle())
}
}
Run Code Online (Sandbox Code Playgroud)
在节标题中使用大写文本。
有没有办法强制标题文本保留其原始大小写?
我可以获取按值排序的字典键数组,但是如何获取按字典键排序的值数组?我一直在寻找没有运气的地方.任何帮助赞赏.
我已经在Xcode 6中集成了Facebook sdk(使用swift).在登录期间,我请求public_profile权限:
FBSession.openActiveSessionWithReadPermissions(["public_profile"], allowLoginUI: true, completionHandler: {
...
...
Run Code Online (Sandbox Code Playgroud)
所以我请求用户的信息:
FBRequestConnection.startForMeWithCompletionHandler { (connection, user, error) -> Void in
...
...
Run Code Online (Sandbox Code Playgroud)
为什么用户对象不包含个人资料图片?如何获取用户个人资料图片?它不是public_profile的一部分?
我得到以下信息:
2015-01-25 01:25:18.858 Test[767:23804] {
"first_name" = xxx;
gender = xxx;
id = xxxxxxxxx;
"last_name" = xxxxxx;
link = "https://www.facebook.com/app_scoped_user_id/xxxxxxxxx/";
locale = "xxxxx";
name = "xxxxxxx xxxxxxx";
timezone = 1;
"updated_time" = "2013-12-21T18:45:29+0000";
verified = 1;
}
Run Code Online (Sandbox Code Playgroud)
PS:隐私的xxx
如果我有一个像这样的方法:
func someMethod(contextPtr: UnsafeMutablePointer<Void>)
Run Code Online (Sandbox Code Playgroud)
我如何从中获取对象contextPtr?
func someMethod(contextPtr: UnsafeMutablePointer<Void>){
let object:MyObject = contextPtr.memory
}
Run Code Online (Sandbox Code Playgroud)
得到:
'Void'不能转换为'MyObject'
什么是秘诀
更多详情:
我在这里做的是设置一个全局回调函数SCNetworkReachability:
func callback(reachability:SCNetworkReachability, flags: SCNetworkReachabilityFlags, info: UnsafeMutablePointer<Void>) {
let r:Reachability = info.memory
}
Run Code Online (Sandbox Code Playgroud)
然后添加回调如下:
var context = SCNetworkReachabilityContext(version: 0, info: nil, retain: nil, release: nil, copyDescription: nil)
var s = self
withUnsafeMutablePointer(&s) {
context.info = UnsafeMutablePointer($0)
}
SCNetworkReachabilitySetCallback(reachability, callback, &context)
Run Code Online (Sandbox Code Playgroud) swift ×8
ios ×4
arrays ×1
avcapture ×1
avfoundation ×1
copy ×1
ios12 ×1
ios14 ×1
nsdictionary ×1
objective-c ×1
orientation ×1
pointers ×1
reference ×1
selector ×1
swift2 ×1
swift4 ×1
swiftui ×1
swiftui-list ×1
uikit ×1