在我的测试中,我有一个带有预先存在的文本的文本字段.我想删除内容并键入新字符串.
let textField = app.textFields
textField.tap()
// delete "Old value"
textField.typeText("New value")
Run Code Online (Sandbox Code Playgroud)
用硬件键盘删除字符串时没有为我生成记录.用软件键盘做同样的事后我得到了:
let key = app.keys["Usu?"] // Polish name for the key
key.tap()
key.tap()
... // x times
Run Code Online (Sandbox Code Playgroud)
要么
app.keys["Usu?"].pressForDuration(1.5)
Run Code Online (Sandbox Code Playgroud)
我担心我的测试是依赖于语言的,所以我为我支持的语言创建了类似的东西:
extension XCUIElementQuery {
var deleteKey: XCUIElement {
get {
// Polish name for the key
if self["Usu?"].exists {
return self["Usu?"]
} else {
return self["Delete"]
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
它在代码中看起来更好:
app.keys.deleteKey.pressForDuration(1.5)
Run Code Online (Sandbox Code Playgroud)
但它非常脆弱.从模拟器退出后Toggle software keyboard重置,我有一个失败的测试.我的解决方案不适用于CI测试.如何解决这个问题更加普遍?
在我用Swift编写的iPhone应用程序变得非常大(> 150 .swift文件+各种Objective-C库)后,Xcode开始表现得非常糟糕:
每一次编译我都会遇到各种错误,例如:
Command failed due to signal: Segmentation fault: 11
我只是想知道每个人是否都有同样的问题,也许有人找到了减少这种噩梦的方法?
到目前为止我做了什么 - 我将项目拆分为几个动态框架,我从主项目链接,它有助于减少编译时间,但引入一些新问题.
我还使用iRamDisk将DerivedData文件夹保存在RAM中并定期从中删除所有文件,它有时会导致SourceKit崩溃.
我们有一个相当丰富的电子学习应用程序,主要使用cocos2d构建.目前我们处于alpha状态并希望设置我们的项目结构,因此我们还可以构建一个Mac版本来定位Mac App商店.在UIKit中有大约80%的cocos2d和一些初始屏幕,必须移植到Mac(重写).
从单个代码库中定位Mac和iOS应用商店的建议设置是什么?我假设选择是:
更复杂的是,我们目前使用cocos2d作为iOS应用程序的静态库.我们还有一个名为CoreInfrastructure的库,它包含我们在所有项目中使用的大量代码.最近我发现我可以创建一个项目来同时构建一个面向Mac的框架和一个基于相同代码库的iOS库.这是通过从框架项目开始并添加目标来为iOS构建静态库来完成的.
所以只是想得到每个人的意见和见解.有人知道在上述选择中要注意的任何警告吗?任何为Mac和iOS应用程序商店构建的人都会同时分享他们的结构吗?在我们的库代码上添加一个目标...是应用程序的方法吗?
是否存在任何选择存档和分发版本的问题?
提前致谢.
我刚刚注意到XCode显示了与源代码控制相关的"A +"符号.这是什么意思?
更具体地说,您如何知道PHAsset当前版本的标的资产是否与原始资产不同?
我的用户只需要在必要时在当前或原始资产之间进行选择.然后我需要他们的回答PHImageRequestOptions.version.
我有一个集合视图的测试,其工作方式如下:
func testDeleteItem() {
app.collectionViews.staticTexts["Item"].tap()
app.buttons["Delete"].tap()
XCTAssertEqual(app.collectionViews.cells.count, 2)
XCTAssertFalse(app.collectionViews.cells.staticTexts["Item"].exists)
}
Run Code Online (Sandbox Code Playgroud)
点按后,会出现一个带删除按钮的新屏幕.点击按钮时,屏幕自动解除并重新加载集合视图.在UI中,一切都如预期的那样,但我得到两个断言都失败了.在第一个计数中它仍然是3,在第二个项目中它仍然存在.
我在提供的url上创建了一个图片PHContentEditingOutput。当我UIImage像这样加载数据并将其保存时,它可以工作。
[[PHPhotoLibrary sharedPhotoLibrary] performChanges:^{
NSData *data = [NSData dataWithContentsOfURL:contentEditingOutput.renderedContentURL]
UIImage *image = [UIImage imageWithData:data];
[PHAssetChangeRequest creationRequestForAssetFromImage:image];
} completionHandler:^(BOOL success, NSError *error) {
...
}];
Run Code Online (Sandbox Code Playgroud)
但是当我尝试使用url方法失败时:
[[PHPhotoLibrary sharedPhotoLibrary] performChanges:^{
[PHAssetChangeRequest creationRequestForAssetFromImageAtFileURL:contentEditingOutput.renderedContentURL];
} completionHandler:^(BOOL success, NSError *error) {
...
}];
Run Code Online (Sandbox Code Playgroud)
错误:
错误域= NSCocoaErrorDomain代码= -1“操作无法完成。(可可错误-1。)”
更新:
当我尝试保存修改时出现相同的错误。
[[PHPhotoLibrary sharedPhotoLibrary] performChanges:^{
PHAssetChangeRequest *request = [PHAssetChangeRequest changeRequestForAsset:asset];
request.contentEditingOutput = contentEditingOutput;
} completionHandler:^(BOOL success, NSError *error) {
...
}];
Run Code Online (Sandbox Code Playgroud)
该方法适用于视频(creationRequestForAssetFromVideoAtFileURL:),但不适用于图像。什么地方出了错?
我CVPixelBufferRef从一个AVAsset. 我正在尝试对其应用 a CIFilter。我使用这些行:
CVPixelBufferRef pixelBuffer = ...
CVPixelBufferRef newPixelBuffer = // empty pixel buffer to fill
CIContex *context = // CIContext created from EAGLContext
CGAffineTransform preferredTransform = // AVAsset track preferred transform
CIImage *phase1 = [CIImage imageWithCVPixelBuffer:pixelBuffer];
CIImage *phase2 = [phase1 imageByApplyingTransform:preferredTransform];
CIImage *phase3 = [self applyFiltersToImage:phase2];
[context render:phase3 toCVPixelBuffer:newPixelBuffer bounds:phase3.extent colorSpace:CGColorSpaceCreateDeviceRGB()];
Run Code Online (Sandbox Code Playgroud)
不幸的是,我得到的结果方向不正确。例如,以纵向模式拍摄的视频是颠倒的。我想这个问题是在从去AVAsset到CoreImage坐标系统(用于显示在Xcode中预览阶段2还提供了一个不正确的结果)。如何解决?
我想检查 Vapor 应用程序正在服务的所有路线的列表。是否有脚本或运行时命令可以为我生成列表?
我正在寻找类似于rake routesRuby on Rails 的东西
我正在尝试将文本字段内容映射到ProprtyType.我在视图模型中有属性:
var property = MutableProperty<Int?> (nil)
Run Code Online (Sandbox Code Playgroud)
我想把它捆绑起来 viewDidLoad
let producer = textField.rac_textSignal().toSignalProducer().map { text in Int(text as! String) }
viewModel.property <~ producer
Run Code Online (Sandbox Code Playgroud)
但是我得到了我不明白的错误:
二进制运算符'<〜'不能应用于'MutableProperty'类型的操作数(又名'MutableProperty>')和'SignalProducer'(又名'SignalProducer,NSError>')
我做错了什么?
ios ×7
swift ×5
xcode ×4
photokit ×2
uitextfield ×2
cifilter ×1
code-sharing ×1
compilation ×1
core-image ×1
git ×1
image ×1
macos ×1
objective-c ×1
photos ×1
routing ×1
symbols ×1
ui-testing ×1
uikeyboard ×1
url ×1
vapor ×1
xcode7 ×1