我在Swift写了一堂课.我想在我写的两个独立的iOS应用程序项目中使用此代码.共享代码和应用程序都是用Swift编写的.这样做的最佳方式是什么?
我尝试在Swift中创建框架和库,然后将其作为子项目添加到我的应用程序中.在这两种情况下,我无法让应用程序看到模块.我尝试将共享模块添加到主应用程序目标的"Target Dependencies"和"Link Binary With Libraries".没有运气 - 应用程序仍然无法看到共享模块的类.
目前使用Xcode6 Beta6.
正如Konstantin Koval和Heliem指出的那样,我所需要的只是public在我的类和方法声明中,在共享模块中使用.现在一切正常,如果我使用工作区,并且我将模块添加为子项目.
我刚刚找到了一个很好的简单解决方案,用于在Swift中重用项目之间的代码.它被称为Carthage(https://github.com/Carthage/Carthage).这不是插件,因为我不以任何方式与它有任何联系,我真的很喜欢它.它适用于iOS 8+.
命令"rake assets:precompile"对我来说非常慢.特别是在我的Amazon EC2 Micro生产服务器上,它没有很多处理器资源.在EC2上,我必须在每次部署期间等待1分钟或更长时间,仅用于此预编译任务.有没有办法让它更快?
以前我用Jammit来压缩/缩小css和js.Jammit在同一个网站和服务器上的工作速度提高了近10倍.
如何在Mac上测试IE10中的网站?
目前我在VirtualBox中测试IE9,其中Windows 7是从Internet Explorer应用程序兼容性VPC映像安装的.我找不到Windows 8的类似图像.IETester没有IE10 eigher.有没有简单的方法在Mac上测试IE10?
我有以下AngularJS指令创建一个input元素.输入具有ng-change运行doIt()功能的属性.在我的指令单元测试中,我想检查doIt用户更改输入时是否调用函数.但测试没有通过.虽然它在手动测试时可以在浏览器中使用.
指示:
...
template: "<input ng-model='myModel' ng-change='doIt()' type='text'>"
Run Code Online (Sandbox Code Playgroud)
测试:
el.find('input').trigger('change') // Dos not trigger ng-change
Run Code Online (Sandbox Code Playgroud)
现场演示(ng-change):http://plnkr.co/edit/0yaUP6IQk7EIneRmphbW?p = preview
现在,如果我手动绑定change事件而不是使用ng-change属性,则测试通过.
template: "<input ng-model='myModel' type='text'>",
link: function(scope, element, attrs) {
element.bind('change', function(event) {
scope.doIt();
});
}
Run Code Online (Sandbox Code Playgroud)
现场演示(手动绑定):http://plnkr.co/edit/dizuRaTFn4Ay1t41jL1K?p = preview
有没有办法使用ng-change并使其可测试?谢谢.
我正在使用Xcode 7 XCTest中引入的UI测试API.在我的屏幕上,我有一个从网络加载的文本.
如果我只是用exists属性检查它,测试就会失败.
XCTAssert(app.staticTexts["Text from the network"].exists) // fails
Run Code Online (Sandbox Code Playgroud)
如果我首先将tap或任何其他事件发送到文本,它确实有效:
app.staticTexts["Text from the network"].tap()
XCTAssert(app.staticTexts["Text from the network"].exists) // works
Run Code Online (Sandbox Code Playgroud)
看起来如果我只是调用exists它立即评估它并失败,因为尚未从网络下载文本.但我认为当我调用该tap()方法时,它会等待文本出现.
有没有更好的方法来检查是否存在从网络传送的文本?
像(这段代码不起作用):
XCTAssert(app.staticTexts["Text from the network"].eventuallyExists)
Run Code Online (Sandbox Code Playgroud) 我的Xcode bot集成失败,出现以下错误.
断言:运行任务已终止,因为它没有产生太长时间的活动.
从日志的底部:
Sampling completed, processing symbols...
Sample analysis of process 4470 written to file /Library/Developer/XcodeServer/Integrations/Integration-ef7a2c98cd2307fc71923f1123ea23f7/4470.sample
sample[5774]: sample cannot find any existing process you have access to which has a name like 'Interface Builder Cocoa Touch Tool'; try running with `sudo`.
sample[5775]: sample cannot find any existing process you have access to which has a name like 'ibtool'; try running with `sudo`.
sample[5776]: sample cannot find any existing process you have access to which has a name like 'ibtoold'; …Run Code Online (Sandbox Code Playgroud) Paperclip将原始图像存储在"原始"文件夹中.有没有办法调整原始图像的大小?我想缩小原件以节省光盘空间.
因此,例如,如果访问者使用2592x1936上传照片,我想将其存储为1024x1024,就像我们设置尺寸的方式一样:拇指图像:样式
更新(已解决)
我发现了如何在上传时自动调整原始图像的大小.只需要添加:原创到样式:
class MyModel < ActiveRecord::Base
has_attached_file :photo,
:styles => { :original => "1024x1024>", :thumb => "150x150>" }
end
Run Code Online (Sandbox Code Playgroud) 我正在尝试使用公共结构
public struct Person {
public let name: String
}
Run Code Online (Sandbox Code Playgroud)
在单元测试中(XCTest):
let person = Person(name: "Paul")
Run Code Online (Sandbox Code Playgroud)
测试构建失败,错误:
无法构造"Person",因为它没有可访问的初始值设定项.
为了构建测试,我需要为struct编写初始化器.感觉不对,因为结构已经有初始化器.有没有人有更好的解决方案?
Xcode版本6.1.1(6A2008a)
以下代码显示Xcode 6.3 Beta 3中的生成错误.该代码适用于Xcode 6.2和Xcode 6.3 Beta 2.
class MyView: UIView {
override init() {
super.init()
// Some init logic ...
}
override init(frame: CGRect) {
super.init(frame: frame)
}
required init(coder aDecoder: NSCoder) {
fatalError("init(coder:) has not been implemented")
}
}
Run Code Online (Sandbox Code Playgroud)
初始化程序不会覆盖其超类中的指定初始值设定项
有一种可能的解决方法,即使用Beta 3发行说明中提到的init方法创建协议.我无法兼顾它们init和init(frame: CGRect)初始化器.
如何修复这些构建错误?
我有以下XCTest UI测试,它将文本键入文本视图.
let textView = app.textViews.elementBoundByIndex(0)
textView.tap()
textView.typeText("Hello world")
Run Code Online (Sandbox Code Playgroud)
当作为Xcode bot运行时,它会显示以下typeText呼叫错误.
断言:UI测试失败 - 失败:等待键事件完成超时
有趣的是,当我从同一台计算机上的Xcode手动运行时,测试通过了.在升级到Xcode 7.1/iOS 9.1之前,此测试也通过了Xcode bot.可能是问题的根源是什么?
这是一个带有UI测试的独立演示:https: //github.com/exchangegroup/UITestTextViewDemo
iOS 9.1模拟器,OS X 10.11.1(15B42),Xcode 7.1(7B91b),OS X Server 5.0.15(15S4033)
向Apple报道.
swift ×5
ios ×4
xcode ×3
angularjs ×1
macos ×1
paperclip ×1
uitextview ×1
xcode-bots ×1
xcode-server ×1
xcode6.3 ×1
xcode7 ×1
xctest ×1