小编Ale*_*xZd的帖子

appearanceWainContainedIn在Swift中

我正在尝试将我的应用程序转换为Swift语言.

我有这行代码:

[[UIBarButtonItem appearanceWhenContainedIn:[UINavigationBar class], nil]
                     setTitleTextAttributes:textDictionary
                                   forState:UIControlStateNormal];
Run Code Online (Sandbox Code Playgroud)

如何将其转换为Swift?

Apple的文档中,没有这样的方法.

ios uiappearance swift

124
推荐指数
4
解决办法
4万
查看次数

FirebaseCrashlytics 自动上传符号问题

我正在尝试在我的 iOS 应用程序中实施新的 FirebaseCrashlytics,但遇到了一些问题,有些事情根本不清楚。

根据第 3 步中的升级文档,我必须添加以下运行脚本:

${PODS_ROOT}/FirebaseCrashlytics/run
/path/to/pods/directory/FirebaseCrashlytics/upload-symbols
Run Code Online (Sandbox Code Playgroud)

所以,就我而言,它是:

"${PODS_ROOT}/FirebaseCrashlytics/run"
"${PODS_ROOT}/FirebaseCrashlytics/upload-symbols"
Run Code Online (Sandbox Code Playgroud)

但编译失败,因为:

Running upload-symbols in Build Phase mode
Validating build environment for Crashlytics...
Validation succeeded. Exiting because upload-symbols was run in validation mode
[31merror: No Google App ID or Google Services file provided[0m
Command PhaseScriptExecution failed with a nonzero exit code
Run Code Online (Sandbox Code Playgroud)

如果我删除upload-symbols行它工作正常,我会在仪表板中崩溃,但据我所知这upload-symbols必须上传dSYM应用程序用户的文件,所以我不担心这个。意味着我仍然需要它......

所以我试图替换它们:

"${PODS_ROOT}/FirebaseCrashlytics/upload-symbols"
"${PODS_ROOT}/FirebaseCrashlytics/run" 
Run Code Online (Sandbox Code Playgroud)

它开始编译。

我发生了一次强制崩溃并在仪表板中得到了它,但我也得到了: 在此处输入图片说明

这是否意味着它不起作用,它必须在 之后run,所以我继续并完成了:

"${PODS_ROOT}/FirebaseCrashlytics/run"
"${PODS_ROOT}/FirebaseCrashlytics/upload-symbols" -gsp "${BUILT_PRODUCTS_DIR}/${PRODUCT_NAME}.app/GoogleService-Info.plist" -p ios "${DWARF_DSYM_FOLDER_PATH}/${DWARF_DSYM_FILE_NAME}/Contents/Resources/DWARF/${TARGET_NAME}"
Run Code Online (Sandbox Code Playgroud)

现在我可以编译了,但dSYM在 …

xcode ios crashlytics firebase-crash-reporting google-fabric

11
推荐指数
0
解决办法
1043
查看次数

UITableView cellForRowAt 与 willDisplay

我有点沮丧。我有一个iOS的10项目UITableViewUITableViewAutomaticDimension单元格。我正确设置了约束。

最初我在里面映射我的细胞

func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell

一切正常,但后来我读了一篇文章:https : //medium.com/ios-os-x-development/perfect-smooth-scrolling-in-uitableviews-fd609d5275a5#.4rnbc4vyg并将我的数据映射移动到

func tableView(_ tableView: UITableView, willDisplay cell: UITableViewCell, forRowAt indexPath: IndexPath)

在此之后,我的自动布局单元格停止正常工作。

我的理解是 at height 是在 after cellForRowAtbut before计算的willDisplay,所以当我willDisplay已经为我的单元设置了高度映射时,我需要重新加载它(这不好)。

任何人都可以证明/解释这一点?

更新:

发帖提问后,发现这篇文章:https : //tech.zalando.com/blog/proper-use-of-cellforrowatindexpath-and-willdisplaycell/

uitableview ios autolayout uitableviewautomaticdimension

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

将发布者组合分配给 PassthroughSubject

我有以下 RxSwift 视图模型代码:

private(set) var num = BehaviorRelay<Int>(value: 1)
private let indexTrigger = PublishRelay<Int>()
private let disposeBag = DisposeBag()

private func setupBindings() {
   //...
   self.num.distinctUntilChanged().bind(to: self.indexTrigger).disposed(by: self.disposeBag)
}

func numSelected(num: Int) {
   self.num.accept(num)
}

Run Code Online (Sandbox Code Playgroud)

这段代码运行良好并且达到了我想要的效果。我正在尝试做同样的事情,但是使用带有以下代码的快速组合框架:

@Published private(set) var num: Int = 1
private let indexTrigger = PassthroughSubject<Int, Never>()
private var subscriptions = Set<AnyCancellable>()

private func setupBindings() {
   //...
   self.$num.removeDuplicates().sink(receiveValue: { [weak self] num in
      self.indexTrigger.send(num)
   }).store(in: &self.subscriptions)
}

func numSelected(num: Int) {
   self.num = num
}
Run Code Online (Sandbox Code Playgroud)

所以 RxSwift 绑定看起来非常干净和简单,不需要弱。我尝试检查assign(on:) …

ios swift rx-swift combine

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

Vary Accept-Encoding标头不起作用

我在.htaccess中添加了下一行,我在这里找到了如何在htaccess中指定vary accept encoding header

    <IfModule mod_headers.c>
       <FilesMatch "\.(js|css|xml|gz)$">
         Header append Vary Accept-Encoding
       </FilesMatch>
     </IfModule>
Run Code Online (Sandbox Code Playgroud)

但它不起作用,我也检查了phpinfo(加载模块:mod_headers ...).我使用Page Speed插件,我在css文件中看不到这个标题.为什么它不起作用?

.htaccess header vary

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