小编Kaz*_*shi的帖子

如何在Swift的第一个ViewController中隐藏导航栏?

如何在第一个ViewController或swift中的特定ViewController中隐藏导航栏?

我使用以下代码viewDidLoad():

override func viewDidLoad() {
    super.viewDidLoad()
    self.navigationController?.isNavigationBarHidden = true
}
Run Code Online (Sandbox Code Playgroud)

还有viewWillAppear:

override func viewWillAppear(animated: Bool) {
    self.navigationController?.isNavigationBarHidden = true
}
Run Code Online (Sandbox Code Playgroud)

这两种方法都隐藏了所有ViewControllers的导航控制器.

uinavigationbar uinavigationcontroller ios swift

240
推荐指数
7
解决办法
17万
查看次数

无法为XCTest加载基础模块

我在swift上使用Xcode,默认情况下它会创建一个引用XCTest的测试文件.

当我将目标成员资格设置为我的主项目时,会导致此错误

无法为XCTest加载基础模块

如果未设置此目标成员资格,则测试运行正常,一切正常.

PS:我是swift的新手,这可能是一个愚蠢的问题(请赐教)

xcode xctest swift

169
推荐指数
6
解决办法
7万
查看次数

NSArray与NSPredicate使用NOT IN

我有一个NSArray,我想使用NSPredicate过滤掉某些对象,我希望我可以使用NOT IN,因为我看到我可以很容易地进行IN.

所以我有我的阵列:

self.categoriesList
Run Code Online (Sandbox Code Playgroud)

然后我得到了我想删除的值:

NSArray *parentIDs = [self.cateoriesList valueForKeyPath:@"@distinctUnionOfObjects.ParentCategoryID"];
Run Code Online (Sandbox Code Playgroud)

这给了我一个我不想显示的类别的ParentCategoryID列表,所以我想我可以使用NSPredicate来删除它们:

self.cateoriesList = [self.cateoriesList filteredArrayUsingPredicate:[NSPredicate predicateWithFormat:@"CategoryID NOT IN %@",parentIDs]];
Run Code Online (Sandbox Code Playgroud)

这失败了:

reason: 'Unable to parse the format string "CategoryID NOT IN %@"'
Run Code Online (Sandbox Code Playgroud)

如果我想使用IN,那当然是完美的.

objective-c nsarray nspredicate ios

89
推荐指数
1
解决办法
2万
查看次数

如何使用 ASWebAuthenticationSession 获取授权码?

我正在尝试使用 ASWebAuthenticationSession 从Stripe 的 OAuth 端点获取身份验证代码 - 此事件在调用我的 Stripe 重定向 url 后发生。

不幸的是,authSession 的完成处理程序不会使用callbackURL 进行回调。我需要这个callbackURL来查询授权码。我读过有关该主题的不同文章,但我不明白为什么我的实现没有按照我期望的方式工作。

这是我的代码:


class CreateStripeConnectAccountController: UIViewController {

  var authSession: ASWebAuthenticationSession!

  override func viewDidLoad() {
      super.viewDidLoad()
      configureAuthSession()
  }

  private func configureAuthSession() {

    let urlString = Constants.URLs.stripeConnectOAuth // Sample URL

    guard let url = URL(string: urlString) else { return }

    let callbackScheme = "myapp:auth"    

    authSession = ASWebAuthenticationSession(url: url, callbackURLScheme: callbackScheme, completionHandler: { (callbackURL, error) in
       guard error == nil, let successURL = callbackURL else {
          print("Nothing")
          return
       } …
Run Code Online (Sandbox Code Playgroud)

oauth ios stripe-payments swift aswebauthenticationsession

8
推荐指数
1
解决办法
9743
查看次数

Git:如何取消 SourceTree 中的特定文件?

我经常使用Atlassian'Sourcetree。这是非常有用的 GUI Git 客户端。但是当我想取消存储特定文件时,Sourcetree'stash 只会应用所有存储的更改。我想要做的是在 SourceTree 中取消存储选定的文件,就像下面的 git 命令一样git checkout stash@{0} <filename>

有谁知道如何做到这一点?

git git-stash atlassian-sourcetree

6
推荐指数
1
解决办法
9095
查看次数

Docker:获取 https://registry-1.docker.io/v2/:x509:由未知机构签名的证书

当我尝试拉取 docker 镜像时出现错误。我们已经设置了代理,并且在我们的组织中我们有显式代理,因此要访问外部服务器我们不能不设置它。

[root@DX2821 city]# docker pull hellow-world
Run Code Online (Sandbox Code Playgroud)

使用默认标签:最新

来自守护进程的错误响应:

获取https://registry-1.docker.io/v2/ : x509: 由未知机构签名的证书

ca x509certificate docker

6
推荐指数
1
解决办法
2万
查看次数

Codable:不符合协议'可解码'

无法理解为什么我的类不符合Codable请不要在我的情况下我不需要实现编码解码方法.

public class LCLAdvantagePlusJackpotCache: Codable {
    public let token: String
    public let amount: NSNumber
    public let member: Bool

    public init(token: String, amount: NSNumber, member: Bool) {
        self.token = token
        self.amount = amount
        self.member = member
    }

    enum CodingKeys: String, CodingKey {
        case token, amount, member
    }

}
Run Code Online (Sandbox Code Playgroud)

swift codable decodable

5
推荐指数
1
解决办法
3412
查看次数

Swinject - 对成员的模糊引用

我在我的应用程序中使用SwinjectSwift 3.当我尝试

let container = Container()
container.register(NetworkModeling.self) { _ in Network() }
Run Code Online (Sandbox Code Playgroud)

我收到一个错误说

Ambiguous reference to member 'register(_:name:factory:)'
Run Code Online (Sandbox Code Playgroud)

这有什么不对?

dependency-injection swift swinject

4
推荐指数
1
解决办法
967
查看次数

无法将 @available 与 Codable 一起使用

我想将available带有renamed和参数的属性应用于符合 的unavailable属性,如下所示:structCodable

struct SampleData: Codable {
    @available(*, unavailable, renamed: "newProperty")
    let oldProperty: String
    let newProperty: String
}
Run Code Online (Sandbox Code Playgroud)

但是当我尝试构建此代码时,出现如下编译错误:

注意:“oldProperty”已在此处明确标记为不可用

在此输入图像描述

如果 astruct不符合Codable,则效果很好。

在此输入图像描述

有谁知道如何解决这个问题?

如果无法解决此问题,请告诉我原因,我将不胜感激。

提前致谢。

swift codable

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

如何在一段时间后不用调用API而在应用程序中连续更新数据?

我想知道如何在不经常调用API的情况下连续更新iOS应用程序中的数据.例如,如果我在tableView中有产品列表,并且我想要更新服务器中每个产品的价格,因为它会不断变化.

有没有办法,当服务器中的任何值发生变化时,我可以从服务器发出任何可在我的应用程序中检测到的事件?

提前致谢.

iphone ios swift

2
推荐指数
1
解决办法
475
查看次数

我们可以在Swift上重用struct吗?或者还有其他方法吗?

所以我有一个用户JSON结构,如下所示:

- results: {
    meta: {}
    users: []
  },
- status:
Run Code Online (Sandbox Code Playgroud)

我想得到用户所以User我实现的模型来获取JSON是这样的:

struct Response: Decodable {

    let results: Result
    let status: Int
}

struct Result: Decodable {

    let meta: Meta
    let users: [User]
}

struct Meta: Decodable {

    let total_data: Int
    let total_page: Int
}

struct User: Decodable {

    let avatar_url: String
    let created_at: String
    let updated_at: String
    let email: String
    let id: Int
    let name: String
    let username: String
}
Run Code Online (Sandbox Code Playgroud)

它正在工作,但当我有另一个JSON结构相似时,就这样说吧

- results: {
        meta: {}
        rooms: …
Run Code Online (Sandbox Code Playgroud)

json ios swift decodable

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

如何在新的故事板上将数据传递到ViewController

我使用此代码转到新故事板,并将变量X传递到新故事板中的viewController

let mainStoryboard: UIStoryboard = UIStoryboard(name: "Main", bundle: nil)
let homeViewController: UIViewController = mainStoryboard.instantiateViewController(withIdentifier: "ViewControllerCall")
homeViewController.myVar = "x"
self.present(homeViewController, animated: true, completion: nil)
Run Code Online (Sandbox Code Playgroud)

但是我得到这个错误:

类型“ UIViewController”的值没有成员“ myVar”

xcode uiviewcontroller uistoryboard swift

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

Swift - 将UIRefreshControl添加到表的节头视图中

我试图根据标志添加一个UIRefresh控件到节头表,但它没有显示,有人可以看到原因吗?

override func tableView(_ tableView: UITableView, viewForHeaderInSection section: Int) -> UIView? {
    let headerView = UIView()
    ...
    let textAttribs = [NSAttributedStringKey.foregroundColor: UIColor.white, NSAttributedStringKey.font: UIFont(name: "Arial", size: 16.0)!]
    if appsAreGettingInstalled {  
            let titleString = NSAttributedString(string: "Apps are getting installed", attributes: textAttribs)
            let lbl = UILabel(frame: CGRect(x: 10, y: 0, width: tableView.bounds.size.width - 20, height: 40))
            lbl.attributedText = titleString

            let refreshCtrl = UIRefreshControl()
            refreshCtrl.beginRefreshing()

            let view = UIScrollView(frame: CGRect(x: 10, y: 50, width: tableView.bounds.size.width - 20, height: 40))
            view.addSubview(refreshCtrl)
            view.addSubview(lbl)

            headerView.addSubview(view)
     } …
Run Code Online (Sandbox Code Playgroud)

uitableview ios uirefreshcontrol swift

0
推荐指数
1
解决办法
259
查看次数