我登录时出错
DispatchQueue.main.async(execute: {
let message = parseJSON["message"] as! String
appDelegate.infoView(message: message, color: colorSmoothRed)
})
Run Code Online (Sandbox Code Playgroud)
在线的 let message = parseJson["message"] as! String
错误:致命错误:在展开可选值时意外发现 nil
var test = [String : String] ()
test["title"] = "title"
test["description"] = "description"
let encoder = JSONEncoder()
let json = try? encoder.encode(test)
Run Code Online (Sandbox Code Playgroud)
如何查看的输出json
?
如果我print(json)
唯一得到的是Optional(45 bytes)
我有一个基本情况,当用户通过身份验证时,我删除当前屏幕(登录屏幕)并将其更改为应用程序内的另一个屏幕。
为此,我使用以下代码:
if let appDelegate = UIApplication.shared.delegate as? AppDelegate {
print("Window's subviews before removed = \(appDelegate.window?.subviews)")
appDelegate.window?.subviews.forEach { $0.removeFromSuperview() }
print("Window's subviews after removed = \(appDelegate.window?.subviews)")
appDelegate.window?.rootViewController?.view?.removeFromSuperview()
appDelegate.window?.rootViewController?.removeFromParentViewController()
appDelegate.window?.rootViewController = newRootViewController
print("Window's subviews after changed = \(appDelegate.window?.subviews)")
}
Run Code Online (Sandbox Code Playgroud)
这是输出:
但是,在 Debug View Hierarchy 工具中不行:
如您所见,旧的 rootViewController 的视图仍然存在,UIWindow
但不是它的子视图 - 正如输出所示。
这种行为看起来很奇怪,有人遇到过这个问题吗?
我在编程方面非常陌生,并且很难理解这两个属性观察者。
我目前正在构建一个带有表格视图的应用程序,其中日期选择器包含在它的行中。在本例中,我有两个日期选择器。众所周知,日期选择器在单元格中占据很大的高度,因此您需要隐藏它们。下面的代码可以处理它:
var isCheckInDatePickerShown: Bool = false {
didSet{
checkInDatePicker.isHidden = !isCheckInDatePickerShown
}
}
var isCheckOutDatePickerShown: Bool = false {
didSet{
checkOutDatePicker.isHidden = !isCheckOutDatePickerShown
}
}
Run Code Online (Sandbox Code Playgroud)
我有非常基本的编程知识,所以我对didSet
. a 会发生什么willSet
?
我在使用Swift 3和Spritekit开发应用程序时遇到了一个问题.为了检测碰撞,我制作了四个独立的三角形组成一个正方形.当我将这些三角形旋转为一个单元时,它们重叠并且在旋转期间不保持正方形的形状(它们彼此重叠),但是一旦旋转完成就会恢复正常.
这是我用于轮换的代码:
override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) {
for touch in touches{
let location = touch.location(in: self)
if location.x < 0 {
blueTriLeft.run(SKAction.rotate(byAngle: CGFloat(M_PI_2), duration: 0.2))
redTriLeft.run(SKAction.rotate(byAngle: CGFloat(M_PI_2), duration: 0.2))
yellowTriLeft.run(SKAction.rotate(byAngle: CGFloat(M_PI_2), duration: 0.2))
greenTriLeft.run(SKAction.rotate(byAngle: CGFloat(M_PI_2), duration: 0.2))
} else if location.x > 0 {
blueTriRight.run(SKAction.rotate(byAngle: CGFloat(-M_PI_2), duration: 0.2))
redTriRight.run(SKAction.rotate(byAngle: CGFloat(-M_PI_2), duration: 0.2))
yellowTriRight.run(SKAction.rotate(byAngle: CGFloat(-M_PI_2), duration: 0.2))
greenTriRight.run(SKAction.rotate(byAngle: CGFloat(-M_PI_2), duration: 0.2))
}
}
}
Run Code Online (Sandbox Code Playgroud)
下面是我的广场的图片,由四个独立的三角形组成
请随时向我询问您需要查看的任何其他代码,任何输入都有帮助.此外,我无法在行动中得到重叠的问题,所以提前抱歉,但我会尽力去做.
@objc func launchCoreML() {
let settings = AVCapturePhotoSettings()
let previewPixelType = settings.availablePreviewPhotoPixelFormatTypes.first
let previewFormat = [
kCVPixelBufferPixelFormatTypeKey as String: previewPixelType,
kCVPixelBufferWidthKey as String: 160,
kCVPixelBufferHeightKey as String: 160
] as [String : Any]
settings.previewPhotoFormat = previewFormat
cameraOutput.capturePhoto(with: settings, delegate: self)
}
Run Code Online (Sandbox Code Playgroud)
我有一个错误说:
"AVCapturePhotoSettings"类型的值没有成员'availablePreviewPhotoPixelFormat'.
我正在使用Xcode 9的测试版.
BASE_FOLDER = "/Users/User/Desktop/DATA"
BOOK_GROUP_FOLDER = os.path.join(BASE_FOLDER, "book_group")
SCREEN_GROUP_FOLDER = os.path.join(BASE_FOLDER, "screen_group")
hidden_file = ("/Users/User/Desktop/DATA/book_group/.DS_Store")
def listdir_ignorehidden(path): #Ignore HiddenFiles
for f in os.listdir(hidden_file):
if not f.startswith ('.') and os.path.isfile(os.path.join(hidden_file , f)):
yield f
def get_person_folder_reading(persons_folder, screen_type):
base_folder = os.path.join(persons_folder, screen_type)
return [os.path.join(base_folder, fn) for fn in os.listdir(base_folder) if fn not in ["test", ".Data", "._.Data"]][0]
Run Code Online (Sandbox Code Playgroud)
OSError: [Errno 20] 不是目录:'/Users/User/Desktop/DATA/book_group/.DS_Store/eye_tracker/paper'
我正在尝试从不同目录读取多个文件。但是我收到一个错误,似乎是由 mac 的.DS_Store
. 我定义了一个应该忽略它的函数,但它没有帮助。
任何想法如何处理它?
我想创建iOS时提供的本机复制和粘贴体验,当您点击并按住UITextField
- 但我希望它可以在一个UILabel
而不是一个UITextField
.
这是可能的,还是只适用于它的东西UITextField
?我是否需要创建自己的自定义用户界面并乱七八糟UIPasteboard
或是否有更有说服力的解决方案?
这是一个典型的例子,虽然它通常也显示放大的圆圈:
我有一个结构,我用来调用iTunes API.但是,当我运行它时,myURL
变量永远不会被设置,它始终是nil
.不确定我做错了什么:
let myDefaultSession = URLSession(configuration: .default)
var myURL: URL?
var myDataTask: URLSessionTask?
struct APIManager {
func getJSON(strURL: String) {
myURL = URL(string: strURL)
var dictReturn: Dictionary<String, Any> = [:]
//cancel data task if it is running
myDataTask?.cancel()
print(myURL!) //<----Always nil
}
}
Run Code Online (Sandbox Code Playgroud)
这是字符串:
"https://itunes.apple.com/search?media=music&entity=song&term=The Chain"
Run Code Online (Sandbox Code Playgroud) 所以我对CocoaPods很新,我想对命令做一些澄清.
我有一个错误说,Unable to find a specification for 'Firebase/Core'
并且在多次尝试不同的命令后,唯一有用的是Pod repo remove master
.任何人都可以告诉我为什么有效,它做了什么?
swift ×8
ios ×6
swift3 ×2
swift4 ×2
cocoapods ×1
coreml ×1
firebase ×1
hidden-files ×1
json ×1
python ×1
skspritenode ×1
sprite-kit ×1
uilabel ×1
uipasteboard ×1
uiwindow ×1
url ×1
xcode9 ×1