我尝试将两个NSIntegers相乘,但Xcode给了我一个错误:
NSInteger singlePage = ((NSInteger)floor((scrollView.contentOffset.x * 2.0f + pageWidth) / (pageWidth * 2.0f)));
NSInteger page = singlePage * visiblePages;
Run Code Online (Sandbox Code Playgroud)
错误本身:
Invalid operands to binary expression ('NSInteger' (aka 'int') and 'NSInteger *' (aka 'int *'))
Run Code Online (Sandbox Code Playgroud)
NSInteger visiblePages已经定义并正在传递给方法.
我认为编译器认为*是指针符号而不是乘法符号.有没有其他方法来乘以两个NSIntegers?
我在水平 纸中嵌入了两个标签UIStackView。标签之一可能会变得太大,因此其中一个被截断了。
或者,它们的大小正在按一定比例分割,并且垂直增长。
我要实现的目标是,如果标签不合适,请UIStackView更改axis为垂直。
请参考以下两个数字:
图1:标签排成一行,使用水平轴。
图2:标签之一是多行。使用垂直轴。
使用UICollectionViewFlowLayout时,行为类似。
我想的扩展名添加到阵列的阵列,以检索Element与所述IndexPath大小为2:
let array: [[String]] = ....
let indexPath = IndexPath(indexes: [0, 0])
let string = array[indexPath]
Run Code Online (Sandbox Code Playgroud)
我得到一个错误无法通过下标下标分配是get-only同时实现以下扩展:
extension Array where Element : Collection, Element.Index == Int {
subscript(indexPath: IndexPath) -> Element.Iterator.Element {
get {
return self[indexPath.section][indexPath.item]
}
set {
self[indexPath.section][indexPath.item] = newValue
}
}
}
Run Code Online (Sandbox Code Playgroud)
出现这种错误的原因是什么?如何在下标中添加变异选项 ?
在使用为 实例的方法设置的断点进行调试时UIViewController,我决定检查 的值UIModalPresentationStyle。
这是我得到的:
(lldb) po self.modalPresentationStyle
__C.UIModalPresentationStyle
Run Code Online (Sandbox Code Playgroud)
如何获取变量的实际值,而不是其类型?
我可以通过执行以下命令对其进行“逆向工程”:
(lldb) po self.modalPresentationStyle == .fullScreen
false
Run Code Online (Sandbox Code Playgroud)
但怎样才能更快达到想要的结果呢?
我正在使用单个 macOS GitLab 运行程序来执行 iOS 作业。runner 已成功与 GitLab 配对并接收作业,但是,作业立即失败并且 runner 向 GitLab 报告。
通过查看运行器日志,我无法追踪问题,即使在--debug模式下运行 GitLab Runner 也是如此。
问题:
GitLab 网页界面上的工作报告:
Running with gitlab-runner 11.7.0 (8cc638ff)
on iMac 8cc638ff
Using Shell executor...
Running on name-iMac.local...
Fetching changes...
ERROR: Job failed: exit status 1
Run Code Online (Sandbox Code Playgroud)
gitlab-runner --debug run命令的输出:
Checking for jobs... received job=216 repo_url=https://gitlab.local/software/ios.git runner=00000000
Failed to requeue the runner: builds=1 runner=00000000
Running with gitlab-runner 11.7.0 (8bb608ff) job=216 project=34 runner=00000000
on iMac 00000000 job=216 project=34 runner=00000000
Shell configuration: …Run Code Online (Sandbox Code Playgroud) 有以下例子:
import UIKit
@objc class ViewController: UIViewController {
@objc dynamic var buggyApple: NSObject?
var obs: NSKeyValueObservation?
override func viewDidLoad() {
super.viewDidLoad()
obs = observe(\.buggyApple, changeHandler: { (obj, change) in
print(change)
})
buggyApple = NSObject()
buggyApple = NSObject()
}
}
Run Code Online (Sandbox Code Playgroud)
我在调试控制台中得到相应的输出:
NSKeyValueObservedChange<Optional<NSObject>>(kind: __C.NSKeyValueChange, newValue: Optional(nil), oldValue: Optional(nil), indexes: nil, isPrior: false)
NSKeyValueObservedChange<Optional<NSObject>>(kind: __C.NSKeyValueChange, newValue: Optional(nil), oldValue: Optional(nil), indexes: nil, isPrior: false)
Run Code Online (Sandbox Code Playgroud)
ViewController在 中的回调内检查断点上的对象时LLDB,我得到以下信息:
(lldb) po obj.buggyApple
? Optional<NSObject>
- some : <NSObject: 0x600000908fa0>
Run Code Online (Sandbox Code Playgroud)
所以,实际上 newNSObject已经成功发送了,但是,change …
考虑以下示例:
struct TestView: View {
@Binding private var value: String
init(value: Binding<String>) {
self._value = value
}
}
Run Code Online (Sandbox Code Playgroud)
如何在TestView没有任何的情况下初始化Binding,即只需将其绑定到空字符串(如果调用者不需要连接该属性)?
理想情况下,我可以使用TestView这样的(有时):
TestView()
Run Code Online (Sandbox Code Playgroud)
我尝试在初始化程序中设置默认值,但显然它失败了:
init(value: Binding<String> = Binding<Strings>("")) {
Run Code Online (Sandbox Code Playgroud)
有什么方法可以解决这个 API 问题吗?
是否可以在不单独指定每种类型的情况下对上述所有类型进行扩展?
例如,这里是这样的扩展Double:
extension String {
init?(_ value: Double?) {
if let nonOpt = value {
self.init(nonOpt)
} else {
return nil
}
}
}
let nonOpt: Double = 1
let opt: Double? = 1
let string = String(opt)
print(string)
Run Code Online (Sandbox Code Playgroud)
如果可以使用原始类型初始化字符串,我想允许使用可选类型进行字符串初始化。
ios ×6
swift ×4
arrays ×1
autolayout ×1
binding ×1
collections ×1
combine ×1
debugging ×1
gitlab ×1
lldb ×1
multiplying ×1
nsinteger ×1
objective-c ×1
pointers ×1
string ×1
subscript ×1
swiftui ×1
type-systems ×1
uilabel ×1
uistackview ×1
xcode ×1