我正在尝试将我的应用程序转换为Swift语言.
我有这行代码:
[[UIBarButtonItem appearanceWhenContainedIn:[UINavigationBar class], nil]
setTitleTextAttributes:textDictionary
forState:UIControlStateNormal];
Run Code Online (Sandbox Code Playgroud)
如何将其转换为Swift?
在Apple的文档中,没有这样的方法.
我正在尝试在我的 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
我有点沮丧。我有一个iOS的10项目UITableView与UITableViewAutomaticDimension单元格。我正确设置了约束。
最初我在里面映射我的细胞
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/
我有以下 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:) …
我在.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文件中看不到这个标题.为什么它不起作用?
ios ×4
swift ×2
.htaccess ×1
autolayout ×1
combine ×1
crashlytics ×1
header ×1
rx-swift ×1
uiappearance ×1
uitableview ×1
uitableviewautomaticdimension ×1
vary ×1
xcode ×1