小编Fre*_*ers的帖子

在iOS中测试IAP边缘情况(例如:丢失信用卡信息等)

我们目前在应用商店中有一个应用,它使用IAP来停用广告并添加一些功能.

但是,我们注意到有些用户在购买IAP时遇到了问题.经过仔细审查后,似乎大部分原因都归结为购买时没有活跃的互联网连接.然而,大约十几个案件无法追踪和解决.

其中之一:

  1. 点击购买IAP
  2. 信用卡安全代码尚未填写
  3. 购买失败
  4. 用户将自动移至其App Store帐户以填写缺少的代码
  5. 用户填写代码并确认购买IAP
  6. 用户返回应用程序
  7. 购买仍然失败(!)

结论:用户付费但尚未收到IAP.(当然这可以通过再次点击IAP并免费下载来解决,但这并不理想)

我们正在寻求测试这种边缘情况的解决方案.但是,测试帐户通常不需要有效的CC信息.从而..

问题:如何测试此类案例?

credit-card in-app-purchase ios

6
推荐指数
1
解决办法
191
查看次数

从子阵列获取单个项目的Swift功能方式

我有以下函数(示例),我想以函数方式编写:

func passengerForId(_ id: Int) -> Passenger?
{
    for car in cars
    {
        for passenger in car.passengers
        {
            if passenger.id == id
            {
                return passenger
            }
        }
    }
    return nil
}
Run Code Online (Sandbox Code Playgroud)

什么是最好的方式?

我尝试过以下方法:

func passengerForId(_ id: Int) -> Passenger?
{
    return cars.first(where: { $0.passengers.contains(where: { $0.id == id } ) })
}
Run Code Online (Sandbox Code Playgroud)

然而,这显然会使包含所请求乘客的车辆返回,而不是乘客本身.

另一个选择是:

func passengerForId(_ id: Int) -> Passenger?
{
    let passengers = cars.flatMap { car in car.passengers }
    return passengers.first(where: { $0.id == id })
}
Run Code Online (Sandbox Code Playgroud)

要么

func …
Run Code Online (Sandbox Code Playgroud)

functional-programming swift

0
推荐指数
1
解决办法
90
查看次数