从第一个XCode 6/iOS 8 beta版本开始,我一直在开发和关闭应用程序几个月.我最喜欢的功能之一是实时渲染,使用@IBDesignableSwift中的标签.
我无法获得单一的东西来渲染.我认为一定是因为它是测试版,所以我决定等待完整版本再次尝试.它仍然失败了.我认为在我的代码中可能存在来自beta版本的工件,所以我废弃它并重新开始.它仍然无法正常工作.当然,这些错误现在更具描述性.
这是我的代码:
import UIKit
@IBDesignable class MyButton : UIButton {
let UNPRESSED_COLOR = UIColor(red: 221.0/256.0, green: 249.0/256.0, blue: 14.0/256.0, alpha: 1.0)
let PRESSED_COLOR = UIColor(red: 166.0/256.0, green: 187.0/156.0, blue: 11.0/256.0, alpha: 1.0)
var buttonColorValue: UIColor
let TEXT_COLOR = UIColor(red: 72.0/256.0, green: 160.0/256.0, blue: 5.0/256.0, alpha: 1.0)
required init(coder: NSCoder) {
self.buttonColorValue = UNPRESSED_COLOR
super.init(coder: coder)
// Initialization code
self.setTitleColor(TEXT_COLOR, forState: UIControlState.Normal)
self.setTitleColor(TEXT_COLOR, forState: UIControlState.Highlighted)
self.setTitleColor(TEXT_COLOR, forState: UIControlState.Selected)
}
override func touchesBegan(touches: NSSet, withEvent event: …Run Code Online (Sandbox Code Playgroud) 我正在使用PowerMock,我想知道如何保持子类的所有行为,但是存根super调用可能被子进程覆盖.
说我有这个班:
public class A {
public String someMethod() {
return "I don't want to see this value";
}
}
Run Code Online (Sandbox Code Playgroud)
和一个子类:
public class B extends A {
@Override
public String someMethod() {
return super.someMethod() + ", but I want to see this one";
}
}
Run Code Online (Sandbox Code Playgroud)
如何将呼叫存根到super.someMethod()?
我试过了
@Test
public void test() {
B spy = PowerMockito.spy(new B());
PowerMockito.doReturn("value").when((A)spy).someMethod();
assertEquals("value, but I want to see this one", spi.someMethod());
}
Run Code Online (Sandbox Code Playgroud) 我正在创建一个Google App Engine应用程序(python),我正在学习一般框架.我一直在查看NDB数据存储区的教程和文档,我在概念上遇到了一些困难.我有一个很大的SQL数据库背景,我从来没有使用任何其他类型的数据存储系统,所以我认为这是我遇到麻烦的地方.
我目前的理解是:NDB数据存储区是具有属性(类似于DB字段/列)的实体(类似于DB记录)的集合.使用模型(类似于DB模式)创建实体.每个实体都有一个存储时为其生成的密钥.这是我遇到麻烦的地方,因为这些密钥似乎与SQL DB概念中的任何东西都没有类比.它们看起来类似于表的主键,但它们更紧密地绑定到记录,实际上它们是字段本身.这些NDB密钥不是实体的属性,但被视为与实体分离的对象.如果实体存储在数据存储区中,则可以使用其密钥检索该实体.
我最大的问题之一是你从哪里获得钥匙?我看到的一些文档显示了简单创建密钥的示例.我不明白这一点.似乎存储实体时,该put()方法返回一个可以在以后使用的密钥.那么,如果数据存储区生成原始密钥,您如何才能创建密钥并定义ID?
我似乎正在努力的另一件事是带有钥匙的祖先的概念.您可以定义任何类型的父键.是否有预定义的架构?例如,如果我有一个名为"Person"的模型子类,并且我创建了一个类型为"Person"的键,我可以将该键用作任何其他类型的父键吗?就像我想要一个'鞋'键成为'人'键的孩子一样,我是否也可以声明'Car'键是同一个'Person'键的孩子?或者我会在添加"鞋子"键后无法使用?
我真的只是想对来自主要SQL背景的人的NDB数据存储及其API进行简单的解释.
所以我正在实现一个自定义的"选择器"工具栏,就像iOS相当于单选按钮组(UISegmentedControl).只是一个单杠分为选项.
为此,我创建了一个UIControl被调用SegmentedControl和实现的自定义绘图的子类.但是,有了这样的视图,我需要选项来设置可用的选项.我本来可以从控制器访问该视图viewDidLoad()并在那里设置它们,但我喜欢使用界面构建器来处理那种东西.
所以我发现了一个名为"用户定义的运行时属性"的奇妙之处.我String用键创建了一个属性buttonValues并设置了一个值(这是一个简单的男/女选择器,所以我选择了"男|女").我发现你可以使用该函数访问这些值self.valueForKey()并传入密钥.我创建了一个解析器将该字符串转换为数组,然后添加了该drawRect()函数的功能,以使用该数组来设置按钮.
当我运行该应用程序时,我收到有关"键值编码兼容性"的错误.
所以我查了一下,发现该类必须有支持变量来存储属性.很好,我添加了一个名为的实例变量buttonValues并将其初始化为"".现在应用程序运行正常,但该值从self.valueForKey()函数中清空.我查阅了有关如何设置用户定义的运行时属性的教程,但它们没有详细说明.他们谈论Key Value Coding-compliance,就像我应该知道的那样.
我想知道我必须做些什么才能使这个工作正常,详细的细节.
我只是在学习如何使用Combine。我有使用 Rx(RxSwift 和 RxJava)的经验,我注意到它非常相似。
然而,完全不同(有点烦人)的一件事是Publisher协议不对其Output和Failure类型使用泛型;它使用关联类型代替。
这意味着我无法指定多态Publisher类型(例如Publisher<Int, Error>)并简单地返回符合Publisher这些类型的任何类型。我需要AnyPublisher<Int, Error>改用,我被迫在eraseToAnyPublisher()所有地方都包括在内。
如果这是唯一的选择,那么我会忍受它。但是,我最近还了解了 Swift 中的不透明类型,我想知道是否可以使用它们来解决这个问题。
有没有办法,让我有,比方说,一个函数,返回some Publisher和使用的具体类型Output和Failure?
这似乎是不透明类型的完美案例,但我不知道是否有办法既使用不透明类型又指定关联类型。
我正在想象这样的事情:
func createPublisher() -> some Publisher where Output = Int, Failure = Error {
return Just(1)
}
Run Code Online (Sandbox Code Playgroud) 我正在尝试创建一个比底层视图更大的覆盖层。
我尝试使用overlay()修改器来执行此操作,但似乎不允许覆盖层延伸超出底层视图的边界。
我意识到,通过将层次结构中的覆盖层拉到具有更大边界的包含视图并使用 a 是ZStack可行的,但这会破坏我想要的流程。我希望叠加层在创建它的较小视图中独立存在(有点像sheet()修改器的工作方式)。
这在 SwiftUI 中可能吗?
好的,所以我正在建立自己的XML序列化(我知道还有其他的,甚至是一些内置于Java的,但我自己也在学习,因为它非常棒).我有序列化了.我目前正在进行反序列化(读取XML文件并根据文件中的数据组装对象),我遇到了设置泛型类型的问题.经过广泛的研究,我想出了如何获取类的泛型类型,以便我可以在序列化时编写它们,但我不知道如何做到这一点:
Class c = Class.forName(string);
ArrayList<c> list = new ArrayList<c>();
Run Code Online (Sandbox Code Playgroud)
我在C#中看到了一些这方面的答案,但显然C#比Java更通用,我无法用Java复制那里的解决方案.甚至可以用反射来完成这项工作吗?
我正在制作一个Cordova应用程序,我最近开始尝试在Chrome开发工具中进行测试.我正在模仿触摸事件,而且工作正常.但是在模拟设备屏幕分辨率时,事情开始变得怪异.我现在正在使用iPhone 5屏幕,我使用的设备尺寸是320x568.在Chrome开发工具中,我将设备分辨率设置为320x568.在Chrome中运行应用时,所有内容都应该是应有的两倍.所以我在窗口,文档和屏幕对象上运行宽度和高度操作.
$(window).width()返回640
$(窗口).height()返回1135
$(document).width()返回1280
$(document).height()返回1136
screen.width返回320
screen.height返回568
screen.width和screen.height是正确的.窗口宽度和高度是〜两倍,文档尺寸很奇怪.我不确定他们有什么问题,或者是什么造成了这个问题.我的理解是一切都应该是320x568.我该怎么做才能确保这一点?
我越来越厌倦试图让节点库一起正常工作,但这是工作的一部分,所以这里就是这样.
我有一个用于浏览器的ES6应用程序.我的文件有一组单元测试,当我的应用程序是用ES5编写时,我正在调试.我使用Browserify处理导入/导出模块并捆绑我的发行版.这在浏览器中运行应用程序时工作正常.我可以成功浏览源文件和规范文件并运行测试,测试通过.我非常接近这个工作.
唯一的问题是报道.我最接近的是显示karma-browserify生成的文件的覆盖范围,每个文件看起来像这样:
require('/absolute/path/to/the/corresponding/file.js');
Run Code Online (Sandbox Code Playgroud)
并且所有文件的覆盖率显然为100%,因为每个文件只有一行.
这是我的karma.conf.js:
import babelify from 'babelify';
import isparta from 'isparta';
import paths from './paths';
var normalizeBrowserName = (browser) => browser.toLowerCase().split(/[ /-]/)[0];
export default function(config) {
config.set({
basePath: '..',
browsers: ['PhantomJS'],
frameworks: ['browserify', 'jasmine'],
files: paths.test.files,
preprocessors: {
'app/**/*.js': ['browserify', 'sourcemap', 'coverage'],
[paths.test.testFiles]: ['babel'],
},
plugins: [
'karma-babel-preprocessor',
'karma-browserify',
'karma-coverage',
'karma-jasmine',
'karma-junit-reporter',
'karma-phantomjs-launcher',
'karma-sourcemap-loader',
],
autoWatch: false,
colors: false,
loggers: [{ type: 'console' }],
port: 9876,
reporters: ['progress', 'dots', 'junit', 'coverage'],
junitReporter: {
outputFile: paths.test.resultsOut,
suite: '', …Run Code Online (Sandbox Code Playgroud) 我在Mac上进行所有开发,我的文件在远程Linux服务器上.我使用SSHFS来访问文件.当我在本地项目上使用IntelliJ时,我甚至没有注意到文件同步,很可能是因为它可以非常快速地访问文件.但是当我通过SSHFS打开一个项目时,同步需要很长时间,这很痛苦,因为检查取决于同步完成.在同步完成之前,我看不到任何代码分析.
我看到一个解决方案,有人将intellij项目文件移动到本地目录,并让项目指向SSHFS文件,但我宁愿把所有东西放在一个地方.
我需要知道如何加速同步或者即使文件正在同步也要运行检查.
ios ×3
swift ×3
java ×2
xcode ×2
babeljs ×1
browserify ×1
combine ×1
generics ×1
ibdesignable ×1
isparta ×1
karma-runner ×1
opaque-types ×1
overriding ×1
powermock ×1
python ×1
reflection ×1
rendering ×1
sshfs ×1
stub ×1
super ×1
swiftui ×1