运行某些单元测试时不一致地得到此错误:
2018-12-20 09:11:34.892 MyApp [4530:106103] *无效_XCTFailureHandler(XCTestCase * __ strong _Nonnull,BOOL,const char * _Nonnull,NSUInteger,NSString * __ strong _Nonnull,NSString * __ strong _Nullable,... )(),/ Library / Caches / com.apple.xbs / Sources / XCTest_Sim / XCTest-14460.20 / Sources / XCTestFramework / Core / XCTestAssertionsImpl.m:41 2018-12-20 09:11:34.929 MyApp [4530:106103] *由于未捕获的异常“ NSInternalInconsistencyException”而终止应用程序,原因:“参数“ test”不能为零。
似乎某些断言失败了,因为参数为nil
,但是我很难确定哪个参数。
环境:Xcode 10.1 iOS应用程序
NumberFormatter
在屏幕上显示值时,可以很容易地格式化货币:
let decimal = Decimal(25.99)
let decimalNumberFormatter = NumberFormatter()
decimalNumberFormatter.numberStyle = .currencyAccounting
let output = decimalNumberFormatter.string(for: decimal)
// output = "$25.99"
Run Code Online (Sandbox Code Playgroud)
上面的代码适用于任何Decimal
或Double
值.十进制数字总是与正在使用的语言环境匹配.
我们认为将浮点货币值序列化为JSON并不是那么简单.
具有以下序列化方法(介意力量展开):
func serialize(prices: Any...) {
let data = try! JSONSerialization.data(withJSONObject: ["value": prices], options: [])
let string = String(data: data, encoding: .utf8)!
print(string)
}
Run Code Online (Sandbox Code Playgroud)
然后我们可以使用不同的值和类型来调用它.Double
,Decimal
和NSDecimalNumber
(应该从Swift的桥接Decimal
)在某些情况下无法正确呈现值.
serialize(prices: 125.99, 16.42, 88.56, 88.57, 0.1 + 0.2)
// {"value":[125.99,16.42,88.56,88.56999999999999,0.3]}
serialize(prices: Decimal(125.99), Decimal(16.42), Decimal(88.56), Decimal(88.57), Decimal(0.1) + Decimal(0.2))
// {"value":[125.98999999999997952,16.420000000000004096,88.56,88.57,0.3]} …
Run Code Online (Sandbox Code Playgroud) 我最近在iPhone上开发了一个应用程序,今天我将iPad升级到iOS 8,这样我就可以测试它上面的应用了.不过,Xcode给了我以下错误:
可能导致此错误的任何想法?
我在Swift中有一个iOS应用程序和CocoaPods使用UrbanAirship iOS SDK via Pods,如下所示:
pod 'UrbanAirship-iOS-SDK'
Run Code Online (Sandbox Code Playgroud)
我们可以验证Podfile.lock
文件中安装的版本:
- UrbanAirship-iOS-SDK (6.2.0):
- UrbanAirship-iOS-SDK/Core (= 6.2.0)
- UrbanAirship-iOS-SDK/Core (6.2.0)
Run Code Online (Sandbox Code Playgroud)
该应用程序在Xcode 6.4上正确构建,运行和存档.此外,它还可以在Xcode 7 beta 6上构建和运行.但是,在Xcode 7中存档时,我收到以下错误:
ld:'.../Pods/UrbanAirship-iOS-SDK/Airship/libUAirship-6.2.0.a(UAWalletAction.o)'不包含bitcode.您必须在启用bitcode(Xcode设置ENABLE_BITCODE)的情况下重建它,从供应商处获取更新的库,或禁用此目标的bitcode.对于架构armv7
clang:错误:链接器命令失败,退出代码为1(使用-v查看调用)
我已经更新项目的构建设置禁止设置位码ENABLE_BITCODE
,以NO
在项目和目标(S)的水平,两者上标明该SO回答,但错误依然存在.
任何帮助,将不胜感激.谢谢你的时间.
每当在顶部视图控制器上按下后退按钮时,我都想返回到特定的视图控制器,而不是先前的视图控制器。我希望有一种方法可以某种方式覆盖后退按钮的功能。
编辑:
我得到这个工作:
self.navigationController?.popToRootViewController(animated: true)
唯一的问题是,在对其进行动画处理时,它会将中间视图控制器显示为根目录。