小编Ene*_*nso的帖子

XCTest:由于未捕获的异常“ NSInternalInconsistencyException”而终止应用程序,原因:“参数“ test”不能为零。

运行某些单元测试时不一致地得到此错误:

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应用程序

xcode unit-testing xctest

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

使用JSONSerialization序列化货币时指定小数位数

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)

上面的代码适用于任何DecimalDouble值.十进制数字总是与正在使用的语言环境匹配.

我们认为将浮点货币值序列化为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,DecimalNSDecimalNumber(应该从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)

double serialization json decimal swift

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

"设备上的政策禁止安装应用程序." 在iPad上运行Xcode 6应用程序时出错(iOS 8)

我最近在iPhone上开发了一个应用程序,今天我将iPad升级到iOS 8,这样我就可以测试它上面的应用了.不过,Xcode给了我以下错误:

可能导致此错误的任何想法?

xcode ipad swift ios8

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

存档时Xcode 7中的UrbanAirship iOS SDK错误:libUAirship-6.2.0.a(UAWalletAction.o)'不包含bitcode

我在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回答,但错误依然存在.

在此输入图像描述

任何帮助,将不胜感激.谢谢你的时间.

xcode urbanairship.com ios xcode7 bitcode

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

当按下导航栏的内置后退按钮时,弹出到根视图控制器

每当在顶部视图控制器上按下后退按钮时,我都想返回到特定的视图控制器,而不是先前的视图控制器。我希望有一种方法可以某种方式覆盖后退按钮的功能。

编辑:

我得到这个工作:

self.navigationController?.popToRootViewController(animated: true)

唯一的问题是,在对其进行动画处理时,它会将中间视图控制器显示为根目录。

uinavigationbar uinavigationcontroller ios swift

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