不知道我在这里做错了什么,但这里有一些破碎的琐碎代码:
if 10 & (1<<18) {
return
}
Run Code Online (Sandbox Code Playgroud)
这给了我:
'Int'不能转换为'Bool'
怎么了?
我认为部分问题是因为Swift 4改变了诸如@objc
工作之类的方式。
有很多教程,具有很多不同的值,而且我无法在使用哪个版本的版本之间做出选择,以弄清楚如何使其在该版本中工作。
let delegate = UIApplication.shared.delegate as! AppDelegate
delegate.addObserver(self, forKeyPath: #keyPath(AppDelegate.session), options: [], context: nil)
// Warning: Argument of #keyPath refers to non-'@objc' property 'session'
Run Code Online (Sandbox Code Playgroud)
添加@objc
到var声明只是告诉我,无法在Objective-C中引用APISession。这似乎导致要求我将要使用此工具的每个类/变量公开给Obj-C的方法,而且似乎倒退了-据我了解,这是一个较新的功能,这很奇怪苹果不会让它在Swift中原生运行。对我来说,这表明我在某种程度上误解或误用了某些东西。
我列举了一些案例:
case one(value: myClassOne)
case two(value: myClassTwo)
Run Code Online (Sandbox Code Playgroud)
我想检查该枚举的值。现在我以:
switch self.model! {
case .one:
// Great, my case here
default:
break
}
Run Code Online (Sandbox Code Playgroud)
但是我宁愿做这样的事情:
if case self.model(let value) is myClassOne { // do smth } // Not compiling
Run Code Online (Sandbox Code Playgroud)
是否有简单的方法可以简单地提取枚举值并检查其是否满足某些条件或类的相等性?
我是Swift的新手,我有一个登录页面,其中包含用户凭据,并检查其是否正确。我认为如果是正确的凭据,则以JSON返回响应,然后我尝试转到一个新的ViewController。当我尝试转到一个新的View Controller时遇到了此错误,我将其关闭了,所以我不知道为什么正在收到这个问题。这是我的代码
func LoginClosure(completion:@escaping (Bool) ->Void) {
var check = 0
let url:URL = URL(string:ConnectionString+"login")!
if submitEmail == nil || submitPassword == nil {
submitEmail = email.text!
submitPassword = password.text!
}
let session = URLSession.shared
var request = URLRequest(url: url)
request.httpMethod = "POST"
let parameter = "Email=\(submitEmail!)&password=\(submitPassword!)"
request.httpBody = parameter.data(using: String.Encoding.utf8)
DispatchQueue.main.async {
session.dataTask(with:request, completionHandler: { (data, response, error) in
if error != nil {
// print(error)
} else {
do {
let parsedData = try JSONSerialization.jsonObject(with: data!, options: .allowFragments) …
Run Code Online (Sandbox Code Playgroud) 我正在尝试对结构进行编码
struct Configuration : Encodable, Decodable {
private enum CodingKeys : String, CodingKey {
case title = "title"
case contents = "contents"
}
var title : String?
var contents: [[Int]]?
}
Run Code Online (Sandbox Code Playgroud)
转换成 JSON 以存储在 UserDefaults.standard 的本地键中。我有以下代码:
let jsonString = Configuration(title: nameField.text, contents: newContents)
let info = ["row" as String: jsonString as Configuration]
print("jsonString = \(jsonString)")
//trying to save object
let defaults = UserDefaults.standard
let recode = try! JSONEncoder().encode(jsonString)
defaults.set(recode, forKey: "simulationConfiguration")
//end of saving local
Run Code Online (Sandbox Code Playgroud)
打印返回:
jsonString = Configuration(title: Optional("config"), …
Run Code Online (Sandbox Code Playgroud) 在 iOS 上,我没有理会这些信息,因为你在设备或模拟器上运行应用程序。
这是 macOS 应用程序。
我想在没有Xcode 的情况下启动我的应用程序。应用程序文件位置在哪里?
我正在使用 Xcode 10。
于是git status
回来了
Your branch is ahead of 'origin/Dev-Branch' by 5 commits.
(use "git push" to publish your local commits)
Run Code Online (Sandbox Code Playgroud)
我这样做了,现在git status
回来了
Your branch is up to date with 'origin/Dev-Branch'.
Run Code Online (Sandbox Code Playgroud)
但git log
显示我的最后一次提交是前一天的:即今天没有任何内容被推送到原点
Git 如何计算后面和前面的提交消息?
我有一个简单的视图控制器,它在viewDidLoad()
.
DispatchQueue.main.asyncAfter(deadline: DispatchTime.now() + 10) {
UIAccessibility.post(notification: .announcement, argument: "Hello world.")
}
Run Code Online (Sandbox Code Playgroud)
当我在我的设备上启用 Voiceover 时,这工作得很好。
但是,在模拟器上,公告不会运行。我试过使用可访问性检查器,但我无法让 Voiceover 宣布这一点。
是否有任何已知的解决方法?我正在运行 Xcode 11、iOS 13 模拟器。
我正在尝试使用 Xcode 12 将我的构建上传到 App Store,但收到错误消息:
App Store Connect 操作错误
无法找到或加载主类 12
该应用程序是使用 SwiftUI 构建的。有没有人遇到过类似的问题?
我最近更新到 Xcode 13,突然“显示代码操作”中的选项不再起作用。这包括“跳转到定义”、“显示快速帮助”,甚至突出显示所有使用某些规范的地方。
有没有人遇到同样的问题或有一些想法来解决它?我已经尝试关闭应用程序、重新启动计算机、清理构建文件夹,但没有任何帮助。