小编Sen*_*ful的帖子

Swift UITesting错误:文字中的转义序列无效.\ U201c

我正在使用带有swift的Xcode 7构建一个自动化套件.

我的应用加载了以下警报视图:

在使用应用程序时,允许"Light Alarm"访问您的位置?

当我使用UI测试进行录制并单击此警报时,我会收到以下代码:app.alerts ["允许\ U201cLight警报\ U201c在您使用应用程序时访问您的位置?"]

注意:引号已替换为\ U201c

但是,当我尝试编译时,我收到以下错误:"文字中的转义序列无效"

有谁知道怎么绕这个?

xcode escaping ui-testing swift xcode-ui-testing

9
推荐指数
1
解决办法
2262
查看次数

UITesting Xcode 7:如何判断XCUIElement是否可见?

我正在使用Xcode 7中的UI测试自动化应用程序.我有一个带有XCUIElements(包括按钮等)的滚动视图.有时XCUIElements是可见的,有时它们在scrollview上隐藏得太远(取决于我在scrollview上的位置).

有没有办法将项目滚动到视图中,或者可能会告诉它们是否可见?

谢谢

automation ui-testing swift xcode7 xcode-ui-testing

9
推荐指数
3
解决办法
8202
查看次数

如何在 AnyPublisher<Void, Never> 和 AnyPublisher<Never, Never> 之间进行转换?

我将异步请求包装在组合发布者中,以便可以轻松地跨不同管道使用它们。

消费者可能会按如下方式保留这些发布者:

struct Dependencies {
  var loadImageRequest: AnyPublisher<UIImage, Never>
  var saveToDatabaseRequest: AnyPublisher<Void, Never>
  var saveToUserDefaultsRequest: AnyPublisher<Never, Never>
}
Run Code Online (Sandbox Code Playgroud)

两种更常见的请求类型是:

  1. 即发即忘(立即完成):例如,将值保存到用户默认值,可以建模为即发即忘。到目前为止,这似乎AnyPublisher<Never, Never>是表达这种类型的好方法。这可以很容易地通过构建Empty<Never, Never>(completeImmediately: true)
  2. 触发、等待并忽略结果:一个示例是将值保存到数据库(并忽略结果),但仍希望等到保存完成后再继续管道。我一直在对AnyPublisher<Void, Never>这些请求类型进行建模。构建这些的一个简单方法是通过Future<Void, Never>() { promise in promise(.success(()))}.

两者都有一个共同的主题,那就是忽视结果。因此,当将它们交给消费者时,有时在这两种数据类型之间进行转换很有用:AnyPublisher<Never, Never>AnyPublisher<Void, Never>

可以通过三种方式在两者之间进行转换:

  1. Never -> Void,立即完成

    转换它的一种方法是使用一些强制转换:

    let neverPublisher: AnyPublisher<Never, Never> = ...
    let voidPublisher: AnyPublisher<Void, Never> = neverPublisher
      .map { _ in () }
      .append(Just(()))
      .eraseToAnyPublisher()
    
    Run Code Online (Sandbox Code Playgroud)
  2. Void -> Never,等待Void完成

    由于有一个内置运算符,因此转换很容易:

    let voidPublisher: …
    Run Code Online (Sandbox Code Playgroud)

swift combine

9
推荐指数
1
解决办法
7762
查看次数

如何在iPhone应用程序中安装/使用RegexKitLite?

我正在尝试了解如何让我的iPhone应用程序与RegexKitLite一起使用,我试图在Google上搜索如何安装它,但找不到任何能够清楚解释它的内容.希望这将成为将来搜索它的人的分步指南.

好吧,根据它说的文件说:

只需要两个文件RegexKitLite.h和RegexKitLite.m,并链接到/usr/lib/libicucore.dylib ICU共享库.

所以我下载了.h和.m文件,现在我对整个"链接..."部分感到困惑.有人可以澄清一下吗?

苹果网站上的ICU文档中有一个链接,其中包含一个make文件.我运行这个make文件吗?我跑的时候必须是管理员吗?如果文件被"制作",我该怎么做?我如何"链接"这个?这是在XCode中完成的吗?是否需要为每个需要它的项目做?一旦我完成了所有这些,我认为我需要做的就是#import .h文件并开始使用它,这是正确的吗?

谢谢

regex install objective-c

8
推荐指数
2
解决办法
7557
查看次数

优化的OCR黑/白像素算法

我正在为一组有限的字符编写一个简单的OCR解决方案.也就是说,我知道字母表中所有26个字母的确切方式.我正在使用C#,并且能够轻松确定给定像素是否应被视为黑色或白色.

我为每个字符生成一个黑/白像素矩阵.例如,字母I(大写字母i)可能如下所示:

01110
00100
00100
00100
01110
Run Code Online (Sandbox Code Playgroud)

注意:我在本文后面使用的所有点都假设左上角像素为(0,0),右下角像素为(4,4).1代表黑色像素,0代表白色像素.

我会在C#中创建一个相应的矩阵,如下所示:

CreateLetter("I", new List<List<bool>>() {
  new List<bool>() { false, true,  true, true,  false },
  new List<bool>() { false, false, true, false, false },
  new List<bool>() { false, false, true, false, false },
  new List<bool>() { false, false, true, false, false },
  new List<bool>() { false, true,  true, true,  false }
});
Run Code Online (Sandbox Code Playgroud)

我知道我可以通过使用多维数组来优化这部分,但是我们现在忽略它,这是出于说明的目的.每个字母都是完全相同的尺寸,10px乘11px(10px乘11px是我真实节目中一个角色的实际尺寸.我在这个帖子中将其简化为5px乘5px,因为使用0更容易"绘制"字母和1在一个较小的图像上).

现在当我给它一个10px乘11px的图像部分用OCR进行分析时,它需要在每个像素(10*11 = 110)上的每一个字母(26)上运行,这意味着2,860(26*110)每个单个字符的迭代(在最坏的情况下).

我认为可以通过定义每个角色的独特特征来优化这一点.因此,例如,假设字符集仅由5个不同的字母组成:I,A,O,B和L.这些字符可能如下所示:

01110  00100  00100  01100  01000
00100  01010  01010  01010  01000
00100  01110  01010  01100  01000
00100 …
Run Code Online (Sandbox Code Playgroud)

algorithm ocr optimization

8
推荐指数
1
解决办法
3489
查看次数

[NSDictionary getObjects:andKeys:]的示例

我找不到该方法的工作示例[NSDictionary getObjects:andKeys:].我能找到的唯一例子,没有编译.我提供了错误/警告,以防有人搜索它们.

我感到困惑的原因是因为NSDictionary上的大多数方法都返回了NSArray.但是,在文档中,它声明此方法的out变量作为C数组返回.

以下是您按照链接示例可能获得的错误消息/警告:

NSDictionary *myDictionary = ...;

id objects[]; // Error: Array size missing in 'objects'
id keys[]; // Error: Array size missing in 'keys'

[myDictionary getObjects:&objects andKeys:&keys];

for (int i = 0; i < count; i++) {
  id obj = objects[i];
  id key = keys[i];
}
Run Code Online (Sandbox Code Playgroud)

.

NSDictionary *myDictionary = ...;

NSInteger count = [myDictionary count];
id objects[count];
id keys[count];
[myDictionary getObjects:&objects andKeys:&keys]; // Warning: Passing argument 1 of 'getObjects:andKeys:' …
Run Code Online (Sandbox Code Playgroud)

c arrays cocoa objective-c nsdictionary

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

XCode 7中UI测试的文档

我想知道是否有任何关于在WWDC 2015中引入的XCode 7中的新UI测试的文档.如果没有文档,是否有任何用户生产的版本值得关注?

谢谢

user-interface xcode ui-testing xcode-ui-testing

8
推荐指数
2
解决办法
2751
查看次数

如何获得XCUIElement的价值?

如何获得textfieldXCODE7 UITesting 的价值?

var b = XCUIApplication().childrenMatchingType(.textField).elementBoundByIndex(0).stringValue
Run Code Online (Sandbox Code Playgroud)

xcode7 xcode-ui-testing

8
推荐指数
1
解决办法
1万
查看次数

尝试在物理设备上启动监视工具包应用程序时出现FBSOpenApplicationErrorDomain错误3

我得到了这个问题中描述的相同问题.但是,该问题涉及iOS模拟器,而不是物理设备.

我没有使用iOS模拟器.我正在部署到iPhone + Apple Watch.

如果我试图在模拟器上运行它,它可以正常工作.

在"在Apple Watch上运行WatchKit应用程序"构建步骤中,我收到以下错误:

启动"WatchKit扩展"时出错
无法完成操作.(FBSOpenApplicationErrorDomain错误3.)


我尝试过的:

我尝试重置iOS模拟器,然后在设备上运行它(不知道这会有什么帮助),但我仍然得到相同的错误消息.

我尝试进入iOS设置>常规>设备管理,并确保该应用程序已"验证".

重新启动Xcode也没有帮助.

删除应用程序并重新安装没有帮助.

我尝试运行iOS应用程序一次以确保在此端没有权限问题.

Xcode:7.2
iPhone:iOS 9.2
Apple Watch:watchOS 2.1

iphone xcode ios apple-watch

8
推荐指数
1
解决办法
1305
查看次数

尝试在 SwiftUI 中使用时,实例方法“appendInterpolation”要求“Decimal”符合“_FormatSpecifiable”

import Foundation
import SwiftUI

struct SampleComponent: View {
  @Binding var value: Decimal

  var body: some View {
    return Text("\(value)")
  }
}
Run Code Online (Sandbox Code Playgroud)

给了我错误:

实例方法 'appendInterpolation' 要求 'Decimal' 符合 '_FormatSpecifiable'

不过,这在操场上运行良好:

import Foundation

var d: Decimal = 4.5
print("\(d)")
Run Code Online (Sandbox Code Playgroud)

知道发生了什么或如何解决吗?

swift swiftui

8
推荐指数
1
解决办法
3484
查看次数