我正在开发一款通用的应用程序,可以在iPad上使用所有方向,只在iPhone 上使用肖像.该应用程序适用于iOS 9兼容iPad上的分屏多任务,但我有这样的警告:
All interface orientations must be supported unless the app requires full screen
Run Code Online (Sandbox Code Playgroud)
我的应用程序不需要全屏.它仅限于iPhone上的肖像......不应该没问题吗?有没有办法只在iPhone上声明需要全屏?
提前致谢
顺便说一下,我正在使用Xcode 7.3.1
我正在将一个项目从Swift 2.2迁移到Swift 3,我试图在可能的情况下摆脱旧的Cocoa数据类型.
我的问题在这里:迁移NSDecimalNumber到Decimal.
我用来桥接NSDecimalNumber以Double这两种方式雨燕2.2:
let double = 3.14
let decimalNumber = NSDecimalNumber(value: double)
let doubleFromDecimal = decimalNumber.doubleValue
Run Code Online (Sandbox Code Playgroud)
现在,切换到Swift 3:
let double = 3.14
let decimal = Decimal(double)
let doubleFromDecimal = ???
Run Code Online (Sandbox Code Playgroud)
decimal.doubleValue不存在,Double(decimal)甚至不存在decimal as Double......我想出的唯一一个黑客是:
let doubleFromDecimal = (decimal as NSDecimalNumber).doubleValue
Run Code Online (Sandbox Code Playgroud)
但是试图摆脱NSDecimalNumber它并且必须偶尔使用它将是完全愚蠢的......
好吧,要么我错过了一些明显的东西,请原谅浪费你的时间,或者在我看来需要解决一个漏洞......
在此先感谢您的帮助.
编辑:在Swift 4上没有关于这个主题的更多信息.
我正在寻找一种方法来删除ToggleSwiftUI中 a 的标签...
我试过,ToggleStyle但似乎不是正确的方法:
Toggle(isOn: $isBlinky) {
Text("DO NOT DISPLAY").color(.red)
}
.toggleStyle(.switch)
Run Code Online (Sandbox Code Playgroud)
由于标签似乎包含在类型本身 ( struct Toggle<Label>) 中,因此可能无法单独使用开关...
顺便说一句,如果我使用Text("")然后scaledToFit()开关仍然在右侧并且没有真正居中......
无论如何,如果有人有想法!
PS:在等待解决方案时,我包装了一个很好的旧UISwitch,但这不是这个想法......
struct Switch : UIViewRepresentable {
@Binding var isOn : Bool
func makeUIView(context: Context) -> UISwitch {
let uiView = UISwitch()
uiView.addTarget(
context.coordinator,
action: #selector(Coordinator.didChange(sender:)),
for: .valueChanged)
return uiView
}
func updateUIView(_ uiView: UISwitch, context: Context) {
uiView.isOn = isOn
}
// MARK:- Coordinator
func makeCoordinator() -> Switch.Coordinator { …Run Code Online (Sandbox Code Playgroud) UIDocumentBrowserViewController在iOS 13上进行测试时,我遇到了一个非常奇怪的问题。importHandler(newDocumentURL, .move)似乎无缘无故地崩溃了:
[DocumentManager] Cannot create urlWrapper for url file:///.../tmp/23720D22-BC1D-4E7B-A7AE-A1C8B0293F9E.txt.
error Error Domain=NSPOSIXErrorDomain Code=22 "couldn't issue sandbox extension com.apple.app-sandbox.read-write for '/.../tmp/23720D22-BC1D-4E7B-A7AE-A1C8B0293F9E.txt':
Invalid argument" UserInfo={NSDescription=couldn't issue sandbox extension com.apple.app-sandbox.read-write for '/.../tmp/23720D22-BC1D-4E7B-A7AE-A1C8B0293F9E.txt': Invalid argument}.
Run Code Online (Sandbox Code Playgroud)
这是一个复制的两步过程:
在 documentBrowser(_: , didRequestDocumentCreationWithHandler:)
let newDocumentURL: URL? =
URL(fileURLWithPath: NSTemporaryDirectory())
.appendingPathComponent(UUID().uuidString)
.appendingPathExtension("txt")
// Set the URL for the new document here. Optionally, you can present a template chooser before calling the importHandler.
// Make sure the importHandler is always called, even if the …Run Code Online (Sandbox Code Playgroud)我有一个简单的tvOS应用程序以a开头,UITabBarController我希望主视图在应用程序启动时具有焦点,而不是标签栏.
我试过玩self.tabBarController.tabBar.userInteractionEnabled暂时移除焦点,但徒劳无功.(除此之外我不喜欢那种解决方法)
任何线索?
提前致谢.
我正在尝试设置我的UI测试目标的语言和区域,不幸的是它似乎不起作用.
我试过两种方式,首先:
我试着用另一种方式:
-AppleLanguages (French)-AppleLocale fr_FR导致UI测试的每种方式仍然以英语发生.而且,当我按下录音按钮时,它会以法语运行...
所以,如果我做错了什么,我很乐意知道!
提前致谢!
按照优秀的博客文章:https://appventure.me/2015/08/20/swift-pattern-matching-in-detail/#sec-3-7我尝试过自定义模式匹配.让我们定义一个enum代表两种字符串:
enum LineType : String {
case Event = "event:"
case Data = "data:"
}
Run Code Online (Sandbox Code Playgroud)
接下来,一个String扩展能够告诉字符串是否以以下一个或另一个值开头LineType:
extension String {
func isOfType(type: LineType) -> Bool {
return self.hasPrefix(type.rawValue)
}
}
Run Code Online (Sandbox Code Playgroud)
然后是自定义模式匹配函数,检查字符串是否属于给定类型:
func ~= (pattern: LineType, value: String) -> Bool {
return value.isOfType(pattern)
}
Run Code Online (Sandbox Code Playgroud)
最后,让我们用这个例子来测试它:
let testLine = "event:yada-yada-yada"
switch testLine {
case _ where testLine.characters.count == 0:
print("Empty")
case LineType.Event: // <--- Causes the error Enum case 'Event' is not a …Run Code Online (Sandbox Code Playgroud) 我有一个 Siri 快捷方式的意图定义文件。当我单击本地化 Xcode 时,可以很好地创建本地化文件,使用的每个字符串都带有一个 ID。但是,如果我在同一个文件中添加了一个新的意图或者只是在同一个文件中添加了一个新的可能响应,我该如何刷新呢?我目前只找到两种方法:
那么,有人知道刷新意图定义文件的自动本地化的方法吗?
我使用 Xcode 11 测试计划新功能为应用商店生成本地化屏幕截图。正如 WWDC19 期间所解释的,您可以使用测试计划配置来进行 UI 测试,生成多种语言的屏幕截图。
不幸的是,它似乎只指定应用程序的语言和区域,而不是基于模拟器。
例如,当您使用此配置时:
当状态栏显示日期时,该问题尤其出现在 iPad 上:
因此,如果有人知道如何强制模拟器为每个配置更新其语言,我将不胜感激。
PS:我曾经使用过fastlane/snapshot,但测试计划效率更高(5 分钟生成,而不是超过 40 分钟),所以如果可以的话, fastlane我宁愿不回去。fastlane
我面临一个奇怪的问题,就是:我希望用另一种泛型类型来约束一种泛型类型。
让我解释一下,我有一个简单的泛型类型:
class Simple<T : Equatable> { ... }
Run Code Online (Sandbox Code Playgroud)
我希望对这个简单(通用)类型有另一个通用类型约束:
class Complex<U : Simple> { ... } // WRONG!
Run Code Online (Sandbox Code Playgroud)
当然,这也不能编译:
class Complex<U : Simple<T : Equatable>> { ... } // WRONG!
Run Code Online (Sandbox Code Playgroud)
也不:
class Complex<U : Simple<T>> where T : Equatable { ... } // WRONG!
Run Code Online (Sandbox Code Playgroud)
我发现的唯一方法是:
class Complex<T : Equatable, U : Simple<T>> { ... }
Run Code Online (Sandbox Code Playgroud)
所以我需要T在每个实例上重复:
let x = Complex<Date, Simple<Date>>()
Run Code Online (Sandbox Code Playgroud)
最糟糕的是,想象一下如果我有这样的事情:
class SimpleThing : Simple<Thing> { ... }
let y = Complex<Thing, SimpleThing>()
Run Code Online (Sandbox Code Playgroud)
我如何声明Complex以这种方式使用它?: …
ios ×8
swift ×4
xcode ×3
localization ×2
swift3 ×2
xcode10 ×2
focus ×1
generics ×1
ios13 ×1
ipad ×1
iphone ×1
migration ×1
multitasking ×1
screenshot ×1
swift2 ×1
swiftui ×1
tvos ×1
ui-testing ×1
uitabbar ×1
xcode11 ×1
xctestplan ×1