小编Mr.*_*r.P的帖子

了解 ASAuthorizationPasswordProvider

使用 Apple 登录及其示例代码,他们有:

let requests = [ASAuthorizationAppleIDProvider().createRequest(),
                ASAuthorizationPasswordProvider().createRequest()]
Run Code Online (Sandbox Code Playgroud)

我对它们之间的区别以及对尝试使用它们的影响感到困惑。

我是否正确地说这ASAuthorizationAppleIDProvider.createRequest()是使用 Apple 登录的请求,并且ASAuthorizationPasswordProvider().createRequest()是使用可能已存储在钥匙串中的用户名和密码的请求?

然后,如果我ASAuthorizationController使用先前的请求创建一个,如下所示:

let authorizationController = ASAuthorizationController(authorizationRequests: requests)
Run Code Online (Sandbox Code Playgroud)

如果一个失败,说他们都失败是否正确?

因此,对于这种情况,如果我的应用程序没有使用钥匙串保存任何先前的凭据,并且我发出这两个请求,第二个请求将失败,因为我没有保存任何内容?我很困惑为什么要使用这两个请求。

ios swift sign-in-with-apple

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

Cordova导航栏在iOS 6中更大

目前正在与Cordova和Ionic合作并尝试使应用程序尽可能向后兼容(这令人惊讶地好),除了我偶然发现了一个小问题.

iOS 7之后的导航栏更大,因为它还覆盖了状态栏的背景,如下所示.

iOS 6与iOS 7导航栏

因此,当我在运行iOS 6或更早版本的手机上加载应用程序时,状态栏不会调整大小,整个页面都会向下移动,隐藏页脚中的一些内容.

任何帮助将不胜感激.我可能错过了一些简单的东西.

css ios cordova ionic-framework ionic

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

当 VStack 中存在单个非滚动项时,SwiftUI 不会折叠导航栏

当我滚动时,我遇到一个问题,导航栏不会折叠成一个小导航栏,只有当VStack.

下面的代码工作正常

var body: some View {
    NavigationView {
        VStack {
            ScrollView {
                LazyVStack {
                    ForEach(0..<100) { number in
                        Text("\(number)")
                    }
                }
            }
        }
        .navigationBarTitle("Home")
    }
}
Run Code Online (Sandbox Code Playgroud)

并运行如下:

在此输入图像描述

但是当我在顶层添加其他内容时VStack,导航栏不再折叠。所以这段代码:

var body: some View {
    NavigationView {
        VStack {
            SegmentedControl(selectedSegmentIndex: $currentTabIndex, segments: [.new, .new])
            ScrollView {
                LazyVStack {
                    ForEach(0..<100) { number in
                        Text("\(number)")
                    }
                }
            }
        }
        .navigationBarTitle("Home")
    }
}
Run Code Online (Sandbox Code Playgroud)

结果是这样的:

在此输入图像描述

有没有办法将滚动视图的偏移量与导航栏折叠联系起来?或者还有其他解决方法吗?

swift swiftui

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

离子含量和离子页脚具有不同的范围

我的离子内容中有两个输入字段,它们都附有一个ng模型.然后在我的离子脚里面,我有一个ng-click,我称之为一个函数并传入两个ng-model.

当我在离子内容中进行ng-click时,这一切都运行正常,但是当我将它移动到页脚时,我对于传递给函数的两个参数未定义.

这是否意味着离子含量和离子页脚具有不同的$ scope?即使它们在同一个文件中并且具有相同的控制器??

javascript angularjs cordova angularjs-scope ionic-framework

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

从后台线程更新 UIProgressView 进度

我正在使用 aUIProgressView并且它使用该observedProgress属性。然后我有一个Progress被观察到的类型变量。

现在我正在后台线程上写入核心数据,然后更新completedUnitCount但它崩溃了。

这是代码:

var downloadProgress: Progress

init() {
    downloadProgress = Progress()
}

func saveStuff() {
    let stuff: [[String: Any]] = //some array of dictionaries

    downloadProgress.totalUnitCount = Int64(stuff.count)

    persistentContainer.performBackgroundTask { (context) in
        for (index, item) in stuff.enumerated() {
            // create items to be saved
            context.perform {
                do {
                    try context.save()
                    self.downloadProgress.completedUnitCont = Int64(index + 1)
                } catch {
                    // handle error
                }
            }
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

所以它在线上崩溃了self.downloadProgress.completedUnitCont = Int64(index + 1) …

core-data ios swift

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

非“@objc”方法不满足“@objc”协议的要求

我已将以下内容放入 Playground 中以尝试理解这一点,但我只是不这样做:

import Foundation

@objc protocol Sample {

    var value: Int { get set }

    func increase()
    func decrese()

}

extension Sample {

    func increase() {
        value += 1
    }

    func decrease() {
        value -= 1
    }

}

class Test: Sample {

    var value: Int = 0

}

Run Code Online (Sandbox Code Playgroud)

class该错误出现在声明旁边Test

非“@objc”方法“increase()”不满足“@objc”协议“示例”的要求

如果我在课堂上重新声明,increase()那么decrease()警告就会消失。或者如果我从协议中删除声明。有人可以解释一下吗?

编辑

我确实需要一个 Objective-C 类来遵守这个协议,因此一@objc开始就是这样。

ios swift

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

弱财产解除分配混乱

我正在使用第三方库,它需要设置一个委托.在这种情况下,我想将委托设置为另一个类,所以我去写

ThirdPartyLibrary.delegate = MyDelegateHandlerClass()
Run Code Online (Sandbox Code Playgroud)

但是Xcode(Xcode 10 beta)给了我一个警告:

实例将立即解除分配,因为属性'委托'是'弱'

单击delegate第三方库,我看到它确实定义weak如下:

@property (weak, nonatomic) id<ThirdPartyLibraryDelegate> delegate;
Run Code Online (Sandbox Code Playgroud)

但是,如果我将委托的初始设置更改为:

let someInstance = MyDelegateHandlerClass()
ThirdPartyLibrary.delegate = someInstance
Run Code Online (Sandbox Code Playgroud)

那我没有警告?这两个怎么样不一样?只是寻找建议和解释真的.谢谢!

xcode ios swift

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