我刚刚将我的 iPhone 更新到了 iOS 14.2。
当我想从 Xcode 在设备上启动应用程序时,我现在一直看到这个:
我也刚刚将 Xcode 更新到 12.1 版,希望它能解决问题,但没有任何区别,我一直收到相同的消息。
我尝试断开并重新连接设备,但无济于事。
我还删除了 ~/Library/Developer/Xcode/DerivedData/ 下的所有数据,但同样没有效果。
似乎其他人以前也遇到过这个问题,但我没有找到任何适合我的解决方案。
我希望最近有类似经历的人可以为我指出正确的方向,以正确的方法解决这个问题。
评估以下代码,我希望单次打印Hello World. 相反,它会导致无限循环。有人可以解释为什么吗?
let array = ["what"]
for text: String? in array {
print("Hello World")
}
Run Code Online (Sandbox Code Playgroud)
(删除可选?显然使它只打印一次)
自从我使用首选项 ( PreferenceKey,..)以来,我在控制台中收到此消息:
Bound preference _ tried to update multiple times per frame.
经过无数次的研究,我还没有找到任何方法可以让它静音。所以...既然还没有特别针对此警告的问题,您认为可能的原因是什么?
如果没有,可以忽略此警告还是我必须修复它?
非常感谢!
(我试图找到一个例子,但不知何故我没有得到任何简单的警告......)
让我们写一个简单的类在我的脑海中解释:
class SomeClass {
var happyToUsed = 10
}
Run Code Online (Sandbox Code Playgroud)
并创建一个对象
let someObject = SomeClass()
Run Code Online (Sandbox Code Playgroud)
并将其属性用于案例 1:
someObject.happyToUsed // prints 10
Run Code Online (Sandbox Code Playgroud)
对于情况 2:
someObject.self.happyToUsed // prints 10
Run Code Online (Sandbox Code Playgroud)
和案例 3
someObject.self.self.self.self.happyToUsed // prints 10 compiler is still ok, even if self count 1k
Run Code Online (Sandbox Code Playgroud)
我知道案例 1 和案例 2 是相同的(直接指向同一个对象)。即使我使用了 SomeClass.self 而不是对象案例也会以同样的方式运作。到目前为止,我曾在一个项目中使用过案例 3。
我的问题是有任何我应该更喜欢的示例案例 3 或对内存管理的负面影响吗?
我即将发布我的 ios 应用到 App Store,但我不知道我应该如何填写App Store Connect 中的Apple App Privacy。我在我的应用程序中使用了 admob、firebase 分析、firebase crashlytics 和 firebase 身份验证。我发现这个网站显示了如何填写 admob 的应用程序隐私,但我找不到用于 firebase 分析或 firebase crashlytics 的网站。
您是否知道任何网站或教程显示如何填写 firebase 分析和 firebase crashlytics 的应用程序隐私?或者,如果您已将应用发布到 App Store,您能告诉我您是如何为您的应用发布的吗?
我读取手机的原始高度来调整显示输出的大小,并确定顶部和底部的遮挡区域。这是一个基于选项卡的应用程序。我的显示纯粹是编程性的,它仅根据屏幕尺寸以图形方式布局。iPhone 12 mini 的显示屏比应有的小。其他 iPhone 12 类型显示正常。
在 xcode 模拟器中的各种 iPhone 类型上测试我的新应用程序时,它们看起来是正确的。但当我将该应用程序安装到 iPhone 12 mini 上时,显示屏比应有的小。我了解到模拟器返回本机高度值 2436,但手机返回值 2340。 此代码检查显示并告诉我按手机类型在屏幕顶部和底部保留多少:
nativeHeight=UIScreen.main.nativeBounds.height
if nativeHeight==1136 || nativeHeight==1334 // SE,6S,7,8
{reserveTopPixels=40; reserveBottomPixels=98}
else if nativeHeight==1792 // 11, XR
{reserveTopPixels=88; reserveBottomPixels=198}
else if nativeHeight==2208 // 6s+ 7+ 8+
{reserveTopPixels=54; reserveBottomPixels=146}
else if nativeHeight==2436 || nativeHeight==2688 // X, XS, 11Pro, 11, Xr
{reserveTopPixels=132; reserveBottomPixels=260}
else if nativeHeight==2340 //iPhone 12 mini "downsampled screen"
{reserveTopPixels=132; reserveBottomPixels=260; nativeHeight = 2436}
else if nativeHeight==2532 // 12, 12 pro
{reserveTopPixels=132; …Run Code Online (Sandbox Code Playgroud) 我试图将一些透明图像保存到照片库,但它们都以白色背景保存。我的资产文件夹中的所有图像都是 png 文件。
func saveWp() {
for number in count{
let wp = UIImage(named: "neon\(number)")!
let imageSaver = ImageSaver()
imageSaver.writeToPhotoAlbum(image: wp)
}
}
class ImageSaver: NSObject {
func writeToPhotoAlbum(image: UIImage) {
UIImageWriteToSavedPhotosAlbum(image, self, #selector(saveError), nil)
}
@objc func saveError(_ image: UIImage, didFinishSavingWithError error: Error?, contextInfo: UnsafeRawPointer) {
print("Save finished!")
}
Run Code Online (Sandbox Code Playgroud)
}
升级 Xcode 后,我无法在 Xcode 上运行我的 iPhone。
我的 Xcode 等待和等待终于给出了这样的错误并且它卡住了。即使我拔掉了 USB 电缆并删除了派生数据,也没有任何改变。
我在将 Xcode 升级到 12.0 12.1 和 12.2 时遇到了同样的问题。有什么遗漏吗?我应该怎么做才能解决这个问题?
我有一个简单的场景和 tableView。
我需要选择 3 个单元格,即使我滚动它也会保持这样。我可以选择 1、2 或 3 个单元格,但不能选择 4 个或更多。当我选择 4 个单元格时,什么都不会发生。如果有 3 个选定的单元格,并且我单击其中之一,则应取消选择我选择的单元格。到目前为止,一切都很好。感谢@vadian 的帮助,我可以按如下方式实现此目的。但我整天尝试为这种情况编写单元测试,但无法处理它。我决定向帮助社区寻求帮助,但仍然找不到方法。
问题是:如何针对这种情况用一种好的方法编写单元测试?
/// My Model ///
struct Item: Codable {
let name: String
let image: String
var isSelected = false
enum CodingKeys: String, CodingKey {
case name = "name"
case image = "image"
}
}
// MARK: - UITableViewDelegate
extension ViewController: UITableViewDelegate {
let items = [Item]() // fetched from network, there is item objects inside it.
// MARK: - UITableViewDataSource
extension ItemViewModel: UITableViewDataSource …Run Code Online (Sandbox Code Playgroud) 我正在尝试创建可以拖放的圆圈。
我可以让它仅与第一个圆一起工作,但是,第一个圆之后的任何东西都不起作用。
预期行为:拖动时圆圈跟随我的光标,并在拖动结束时落在最终位置
实际行为:圆圈跟随光标的水平位置,但不跟随垂直位置(垂直位置始终明显低于光标)
ContentView.swift
import SwiftUI
struct ContentView: View {
var body: some View {
VStack(alignment: .center) {
ForEach(0..<5) { _ in
DraggableCircles()
}
}
}
}
struct ContentView_Previews: PreviewProvider {
static var previews: some View {
ContentView()
}
}
struct DraggableCircles: View {
@State var dragAmount: CGPoint = CGPoint.zero
var body: some View {
Circle().fill(Color.red)
.frame(width: 50, height: 50)
.gesture(
DragGesture(coordinateSpace: .global).onChanged {action in
let location = action.location
let newWidth = location.x
let newHeight = location.y
let size …Run Code Online (Sandbox Code Playgroud) 我无法理解 Swift 和 Objective-C 中的闭包语法。
有人能告诉我用两种语言编写一个不接受任何参数并且不返回任何内容的闭包的所有可能方法吗?
以下代码允许创建具有不同权重的字体。
func makeFont(weight: CGFloat, size: CGFloat) -> UIFont {
var attributesDict = [String: Any]()
attributesDict["Weight"] = weight
/* Rubik-Light - is a variable font */
let fontDescriptor = UIFontDescriptor(
fontAttributes: [
UIFontDescriptor.AttributeName.name : "Rubik-Light",
kCTFontVariationAttribute as UIFontDescriptor.AttributeName : attributesDict
]
)
return UIFont(descriptor: fontDescriptor, size: size)
}
Run Code Online (Sandbox Code Playgroud)
它在 ios 13 及更低版本上运行良好,但在 iOS 14 上不起作用。有什么解决方案吗?