我正在关注SwiftUI的https://developer.apple.com/tutorials/swiftui/tutorials,我已经下载了macOS Catalina 和 Xcode 11.0 beta。
即使在尝试以下操作后,画布也崩溃并且无法恢复:
代码只是声明了 UI,没什么特别的。
import SwiftUI
struct LandmarkDetail : View {
var landmark: Landmark
var body: some View {
VStack {
MapView(coordinate: landmark.locationCoordinate)
.edgesIgnoringSafeArea(.top)
.frame(height: 300)
CircleImage(image: landmark.image(forSize: 250))
.offset(y: -130.0)
.padding(.bottom, -130.0)
VStack(alignment: .leading) {
Text(landmark.name)
.font(.title)
.multilineTextAlignment(.center)
HStack {
Text(landmark.park)
.font(.subheadline)
Spacer()
Text(landmark.state)
.font(.subheadline)
}
}
.padding()
Spacer()
}
.navigationBarTitle(Text(landmark.name), displayMode: .inline)
}
}
#if DEBUG
struct ContentView_Previews : PreviewProvider …Run Code Online (Sandbox Code Playgroud) 我正在尝试在Xcode 11和macOS Catalina中使用swiftUI。但是创建新项目后,有一个带有文字的样板代码,上面写着“ hello World”。我希望在代码旁的画布中实时预览此简单的欢迎消息。
当我按下简历按钮时:它说:
无法在此文件中预览-无法启动[应用名称]
我尝试点击诊断按钮以生成报告以将其发送给APPLE,说:
[FailedToLaunchError(URL:file:///Users/naive/Library/Developer/Xcode/DerivedData/first_swiftUI-dymizjogcbtouhclgjhhefagmcqo/Build/Intermediates.noindex/Previews/first_swiftUI/Products/Debug-iphoneos/first-swift: = NSOSStatusErrorDomain代码= -10661“(null)” UserInfo = {_ LSLine = 3554,_LSFunction = _LSOpenStuffCallLocal},failureCategory:UVFoundation.FailureCategory.infrastructureFailure)]
这是代码,这是Xcode 11和SwiftUI选项选中时创建的新项目随附的默认代码:
import SwiftUI
struct ContentView : View {
var body: some View {
Text("Hello World")
}
}
#if DEBUG
struct ContentView_Previews : PreviewProvider {
static var previews: some View {
ContentView()
}
}
#endif
Run Code Online (Sandbox Code Playgroud)
我希望画布能够显示并实时显示我的代码。画布不显示!
生成了两个警告消息:
:0:警告:导入的声明'UITableViewDiffableDataSourceCellProvider'无法映射到'UITableViewDiffableDataSourceReference.CellProvider'
:0:警告:导入的声明'UICollectionViewDiffableDataSourceCellProvider'无法映射到'UICollectionViewDiffableDataSourceReference.CellProvider'
除此之外,带有iPadOS Beta的My iPad 11“可以运行该应用程序,模拟器也可以正常运行
与iOS 13起,苹果提供了一堆字形可以用 “无处不在,你可以使用图像”。
您可以使用 SF 符号来表示各种特定位置的任务和内容类型,例如导航栏、工具栏、标签栏、上下文菜单和主屏幕快速操作。在整个应用程序的其余部分,您可以在任何可以使用图像的地方使用符号。
因此,我希望此代码将字形设置为 aUIBarButtonItem的图像:
shareButton = UIBarButtonItem(
image: UIImage(named: "square.and.arrow.up"), // the name for the 'action' (Share) glyph
style: .plain,
target: self,
action: #selector(mySelector))
Run Code Online (Sandbox Code Playgroud)
但是由于找不到图像,该应用程序崩溃并显示为 nil。
我尝试附加.png到图像名称,但没有任何区别。
早些时候在 Xcode 10 和 swift 5 上,我曾经按如下方式更改状态栏颜色:-
if let statusBar = UIApplication.shared.value(forKey: "statusBar") as? UIView {
if statusBar.responds(to: #selector(setter: UIView.backgroundColor)) {
statusBar.backgroundColor = #colorLiteral(red: 0, green: 0.7156304717, blue: 0.9302947521, alpha: 1)
}
}
Run Code Online (Sandbox Code Playgroud)
现在在 Xcode 11 & Swift 5.1 上,我收到以下错误:-
由于未捕获的异常“NSInternalInconsistencyException”而终止应用程序,原因:“应用程序在 UIApplication 上调用了 -statusBar 或 -statusBarWindow:必须更改此代码,因为不再有状态栏或状态栏窗口。改为在窗口场景中使用 statusBarManager 对象。
有什么建议?
我正在尝试运行使用此 GitHub 项目的应用程序:https : //github.com/PaoloCuscela/Cards/wiki/Overview
但是当我在我的 iPhone 6 上运行我的应用程序时,它崩溃并给我标题错误。
我已经在我的viewDidLoad函数中编写了其中的 28 个,并且该应用程序在模拟器上运行良好。
let tennisCard = CardHighlight(frame: CGRect(x: 67, y: 3362, width: 250, height: 300))
tennisCard.title = "Exercise 11"
tennisCard.itemTitle = "Tennis"
tennisCard.backgroundColor = UIColor(red: 0/255, green: 255/255, blue: 79/255, alpha: 1)
tennisCard.buttonText = "See"
tennisCard.itemSubtitle = ""
tennisCard.tintColor = UIColor.black
tennisCard.textColor = UIColor.black
tennisCard.icon = UIImage(named: "Tennis")
let tennisVC = storyboard?.instantiateViewController(withIdentifier: "TennisCardContent")
tennisCard.shouldPresent(tennisVC, from: self)
scrollView.addSubview(tennisCard)
Run Code Online (Sandbox Code Playgroud) 我希望持久保存@Published变量,以便每次重新启动应用程序时都相同。
我想在一个变量上同时使用@UserDefault和@Published属性包装。例如,我需要一个' @PublishedUserDefault var isLogedIn '。
我有以下propertyWrapper
import Foundation
@propertyWrapper
struct UserDefault<T> {
let key: String
let defaultValue: T
init(_ key: String, defaultValue: T) {
self.key = key
self.defaultValue = defaultValue
}
var wrappedValue: T {
get {
return UserDefaults.standard.object(forKey: key) as? T ?? defaultValue
}
set {
UserDefaults.standard.set(newValue, forKey: key)
}
}
}
Run Code Online (Sandbox Code Playgroud)
这是我的设置课程
import SwiftUI
import Combine
class Settings: ObservableObject {
@Published var isLogedIn : Bool = false
func doLogin(params:[String:String]) {
Webservice().login(params: params) { response in
if let …Run Code Online (Sandbox Code Playgroud) *** 由于未捕获的异常“NSInternalInconsistencyException”而终止应用程序,原因:“使用 VoIP 推送的 PushKit 应用程序必须链接 CallKit 或 IncomingCallNotifications 框架。”
此错误显示在使用 iOS 13 的 xcode 11 Beta 上。 xcode10 上没有问题。
使用 VoIP 推送的 PushKit 应用程序必须链接 CallKit 或 IncomingCallNotifications 框架。#voip
最近下载了Xcode 11 Beta,以在iOS 13中测试我的应用程序,但遇到了一个似乎无法解决的问题。每次在[CP] Copy Pods Resources步骤上构建都会失败,并说“命令PhaseScriptExecution失败,退出代码非零”。现在我知道这是任何运行脚本阶段失败时的错误,但是通常会伴随此错误提供一些有用的信息。
错误输出:
ibtool --reference-external-strings-file --errors --warnings --notices --minimum-deployment-target 11.0 --output-format human-readable-text --compile /Users/chris/Library/Developer/Xcode/DerivedData/SmartPager-dcfjsnhrgkjfeabbvafghvwsrsxr/Build/Products/Debug-iphoneos/SmartPager Sandbox.app/JSQMessagesViewController.nib
/Users/chris/Work/projectname/Pods/JSQMessagesViewController/JSQMessagesViewController/Controllers/JSQMessagesViewController.xib --sdk /Users/chris/Downloads/Xcode-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS13.0.sdk --target-device ipad --target-device iphone
2019-09-06 13:26:17.003 IBAgent-iOS[39395:514843] Incorrect screen size for <UIScreen: 0x7fb0e05245a0; bounds = {{0, 0}, {0, 0}}> in UICollectionViewData
ibtool --reference-external-strings-file --errors --warnings --notices --minimum-deployment-target 11.0 --output-format human-readable-text --compile /Users/chris/Library/Developer/Xcode/DerivedData/SmartPager-dcfjsnhrgkjfeabbvafghvwsrsxr/Build/Products/Debug-iphoneos/SmartPager Sandbox.app/JSQMessagesCollectionViewCellIncoming.nib /Users/chris/Work/projectname/Pods/JSQMessagesViewController/JSQMessagesViewController/Views/JSQMessagesCollectionViewCellIncoming.xib --sdk /Users/chris/Downloads/Xcode-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS13.0.sdk --target-device ipad --target-device iphone
Command PhaseScriptExecution failed with a nonzero exit code
Run Code Online (Sandbox Code Playgroud)
相关信息:据我所知,这可能与我们使用的已弃用的cocoapod有关,特别是JSQMessagesViewController(7.3.5)。显然,使用不赞成使用的库并不是很好,但是它可以在Xcode 10中构建并正常运行,因此我不知道问题可能出在哪里。在一个单独的项目中,我尝试仅添加此pod,它会引发相同的错误。关于“屏幕大小不正确...”的行似乎只是警告而不是错误,因为在Xcode 10中,它使用同一行正确编译。
我尝试过重新启动计算机,清理,删除派生数据以及所有常见的东西。我只是不知道现在还能去哪里。任何建议将不胜感激。谢谢!
我的应用程序使用AES 256加密来加密字符串。之前使用的相同代码会产生不同的结果。当iOS 13发布时,此问题开始。而且仅发生在商店中或使用Xcode 11构建的应用程序中。
这是用于加密的代码:
- (NSData *)encrypt:(NSData *)plainText key:(NSString *)key iv:(NSString *)iv {
char keyPointer[kCCKeySizeAES256+2],// room for terminator (unused) ref: https://devforums.apple.com/message/876053#876053
ivPointer[kCCBlockSizeAES128+2];
BOOL patchNeeded;
bzero(keyPointer, sizeof(keyPointer)); // fill with zeroes for padding
patchNeeded= ([key length] > kCCKeySizeAES256+1);
if(patchNeeded)
{
NSLog(@"Key length is longer %lu", (unsigned long)[[self md5:key] length]);
key = [key substringToIndex:kCCKeySizeAES256]; // Ensure that the key isn't longer than what's needed (kCCKeySizeAES256)
}
//NSLog(@"md5 :%@", key);
[key getCString:keyPointer maxLength:sizeof(keyPointer) encoding:NSUTF8StringEncoding];
[iv getCString:ivPointer maxLength:sizeof(ivPointer) encoding:NSUTF8StringEncoding];
if (patchNeeded) {
keyPointer[0] …Run Code Online (Sandbox Code Playgroud) 在Xcode 11之前,您可以使用cmd+shift+o打开快速打开菜单,然后使用opt+shift+enter显示小跳转对话框来确定在何处打开文件,例如
请注意,对话框中有一些要在新窗口或新选项卡中打开的位置。
在XCode 11中,对所有编辑器进行了改进(这些功能很棒),小跳转对话框已替换为当前窗口中显示的一些蓝色突出显示。这看起来不错,但是我不知道如何在新标签页或新窗口中打开文件。
直到它消失了,我才意识到这在我的工作流程中有多重要:)