小编pka*_*amb的帖子

Swift 3:按位运算时Int不能转换为Bool

不知道我在这里做错了什么,但这里有一些破碎的琐碎代码:

if 10 & (1<<18) {
    return
}
Run Code Online (Sandbox Code Playgroud)

这给了我:

'Int'不能转换为'Bool'

怎么了?

swift

3
推荐指数
1
解决办法
4549
查看次数

在Swift 4中如何使用#keyPath()?

我认为部分问题是因为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中原生运行。对我来说,这表明我在某种程度上误解或误用了某些东西。

ios swift swift4

3
推荐指数
1
解决办法
4374
查看次数

使用Guard或Swift中的case来从枚举中提取值

我列举了一些案例:

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

3
推荐指数
1
解决办法
1306
查看次数

iOS Swift仅在应用程序的主线程错误上运行

我是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)

ios uistoryboard swift

3
推荐指数
1
解决办法
1827
查看次数

使用 Swift 将可编码结构保存到 UserDefaults

我正在尝试对结构进行编码

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)

swift userdefaults codable

3
推荐指数
1
解决办法
6557
查看次数

在Xcode中,编译后的.app文件在哪里?(macOS 应用程序)

在 iOS 上,我没有理会这些信息,因为你在设备或模拟器上运行应用程序。

这是 macOS 应用程序。

我想在没有Xcode 的情况下启动我的应用程序。应用程序文件位置在哪里?

我正在使用 Xcode 10。

macos xcode xcode10

3
推荐指数
1
解决办法
4706
查看次数

git“落后或领先 X 次提交”的真正含义是什么?

于是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 如何计算后面和前面的提交消息?

git

3
推荐指数
1
解决办法
3387
查看次数

如何在模拟器上发布 UIAccessibility 公告?

我有一个简单的视图控制器,它在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 ios swift xcode11

3
推荐指数
1
解决办法
4163
查看次数

Xcode App Store Connect 操作错误:无法找到或加载主类 12

我正在尝试使用 Xcode 12 将我的构建上传到 App Store,但收到错误消息:

App Store Connect 操作错误

无法找到或加载主类 12

该应用程序是使用 SwiftUI 构建的。有没有人遇到过类似的问题?

xcode ios swift swiftui

3
推荐指数
2
解决办法
1012
查看次数

如何修复一些 Xcode 13 错误,例如无法正确跳转到定义?

我最近更新到 Xcode 13,突然“显示代码操作”中的选项不再起作用。这包括“跳转到定义”、“显示快速帮助”,甚至突出显示所有使用某些规范的地方。

有没有人遇到同样的问题或有一些想法来解决它?我已经尝试关闭应用程序、重新启动计算机、清理构建文件夹,但没有任何帮助。

xcode ios xcode13

3
推荐指数
1
解决办法
1902
查看次数

标签 统计

swift ×7

ios ×5

xcode ×4

codable ×1

git ×1

macos ×1

swift4 ×1

swiftui ×1

uistoryboard ×1

userdefaults ×1

xcode10 ×1

xcode11 ×1

xcode13 ×1