我的团队使用TestFlight在公司内部署beta版本.通常,TestFlight应用程序不想安装最新版本.
例如,我们将收到一封TestFlight电子邮件,通知我们有关构建#91的应用更新.该电子邮件包含一个"在TestFlight中打开"的链接.当您点击该链接时,TestFlight会打开,但会提供安装版本#90 (旧版本),而不是版本#91 (最新版本).
我想runningSum
在一个数字数组(或任何有序的可添加东西的集合)上的函数返回一个相同长度的数组,其中每个元素i
是A中所有元素的总和,直到包含i
.
例子:
runningSum([1,1,1,1,1,1]) -> [1,2,3,4,5,6]
runningSum([2,2,2,2,2,2]) -> [2,4,6,8,10,12]
runningSum([1,0,1,0,1,0]) -> [1,1,2,2,3,3]
runningSum([0,1,0,1,0,1]) -> [0,1,1,2,2,3]
Run Code Online (Sandbox Code Playgroud)
我可以使用for循环或其他任何方法来完成此操作.有更多功能选项吗?它有点像reduce,除了它构建一个具有所有中间值的结果数组.
更一般的是拥有一个接受任何序列的函数,并提供一个输入序列的运行总和的序列.
给定一组值如何将其拆分为由sub-arrays
相等的元素组成?
鉴于此数组
let numbers = [1, 1, 1, 3, 3, 4]
Run Code Online (Sandbox Code Playgroud)
我想要这个输出
[[1,1,1], [3, 3], [4]]
Run Code Online (Sandbox Code Playgroud)
解决这个问题的一种可能方法是创建某种索引来指示每个元素的出现.
let indexes = [1:3, 3:2, 4:1]
Run Code Online (Sandbox Code Playgroud)
最后使用索引重建输出数组.
let subsequences = indexes.sort { $0.0.0 < $0.1.0 }.reduce([Int]()) { (res, elm) -> [Int] in
return res + [Int](count: elm.1, repeatedValue: elm.0)
}
Run Code Online (Sandbox Code Playgroud)
但是,使用此解决方案,我将失去原始值.当然在这种情况下它不是一个大问题(Int
值仍然是,Int
即使重新创建)但我想将此解决方案应用于更复杂的数据结构,如此
struct Starship: Equatable {
let name: String
let warpSpeed: Int
}
func ==(left:Starship, right:Starship) -> Bool {
return left.warpSpeed …
Run Code Online (Sandbox Code Playgroud) UITextField
具有inputView
可用于指定自定义键盘的属性.清除此选项可nil
提供默认键盘.
如果UITextField
是第一响应者,则设置不会发生任何变化inputView
,但通过调用[textField reloadInputView]
键盘将立即发生更改.
我希望能够在两种不同的输入方法之间切换.接口触发这将是一个UISegmentedView
安装为UITextField
的inputAccessoryView
.
我有这个工作,但过渡是非常突然的.部分原因是我在两者之间转换的微调器和键盘在iPad上有不同的尺寸.
我发现我将动画块包裹起来reloadInputView
,我将在两个键盘的视图帧之间获得平滑的动画.不幸的是,有一种视觉抖动,因为过渡不是动画:
[UIView animateWithDuration: 0.3 animations:^()
{
[firstResponder reloadInputViews];
}];
Run Code Online (Sandbox Code Playgroud)
或者,如果我在转换中包装重新加载,我可以得到一个很好的交叉淡入淡出,但我没有得到平滑的帧更改:
[UIView transitionWithView: keyboardWindow
duration: 0.3
options: UIViewAnimationOptionTransitionCrossDissolve
animations: ^(){ [firstResponder reloadInputViews]; }
completion: nil];
Run Code Online (Sandbox Code Playgroud)
(在我所得到的第二码块keyboardWindow
从self.window
因为这一观点被安装为UITextField
的inputAccessoryView
,其最终嵌套键盘的窗口下.)
我想要的是动画和转换输入视图重新加载.我尝试将重新加载放在动画的过渡中,我也尝试将重新加载放在过渡中的动画中 - 似乎都没有帮助.
有任何想法吗?谢谢!
我有一个简单的启动画面故事板.这是一个UINavigationController
以它UITableViewController
为根的.它只是显示UITitleBar
了应用程序的正确性.
当我使用较大的通话中样式状态栏启动时,启动屏幕的标题栏将被剪切在状态栏后面.启动后,应用程序正确调整大小,以便不剪切标题 - IE 运行时故事板没有问题.
我可以修复此发布剪辑吗?
我注意到的是,启动屏幕故事板似乎没有提供顶部和底部布局指南.我不确定这是否相关.
这是启动屏幕故事板的屏幕截图:
作为一个注释,它没有任何垂直布局约束要附加,我似乎无法使用界面构建器工具为此创建任何约束.
我正在尝试迁移一些代码以使用NSManagedObjectContext
with NSPrivateQueueConcurrencyType
.
在将上下文保存到其父级,然后保存父级之后,我有时会遇到非常奇怪的错误.我想知道这些是否是因为没有NSPrivateQueueConcurrencyType
正确使用上下文.
我已经-com.apple.CoreData.ConcurrencyDebug 1
开始尝试调试这个.我很确定这不起作用.如果我在托管对象上下文上执行操作或在不使用的情况下更改其对象performBlock:
,我不会收到错误或抛出.
这是我如何设置方案的参数:.我也没有领先的尝试过
-
.
知道我做错了什么吗?
我通过将它们存储在NSAttributedString中并使用"drawAtPoint:"进行渲染,在iOS中渲染数字(目标为7及以上).我正在使用Helvetica Neue.
我注意到像这样绘制的数字的数字不成比例 - 字形都具有相同的宽度.即使是瘦的"1"也占用与"0"相同的空间.
测试证实了这一点:
for(NSInteger i=0; i<10; ++i)
{
NSString *iString = [NSString stringWithFormat: @"%d", i];
const CGSize iSize = [iString sizeWithAttributes: [self attributes]];
NSLog(@"Size of %d is %f", i, iSize.width);
}
Run Code Online (Sandbox Code Playgroud)
在其他地方:
-(NSDictionary *) attributes
{
static NSDictionary * attributes;
if(!attributes)
{
attributes = @{
NSFontAttributeName: [UIFont systemFontOfSize:11],
NSForegroundColorAttributeName: [UIColor whiteColor]
};
}
return attributes;
}
Run Code Online (Sandbox Code Playgroud)
这个结果字形都具有 6.358点的相同宽度.
是否有一些渲染选项我可以启用它来启用比例数字字形?是否有另一种字体(理想情况下类似于Helvetica Neue)支持比例数字字形(理想情况下,内置)?还要别的吗?
谢谢.
rand
适用于范围:
rand(1:10)
Run Code Online (Sandbox Code Playgroud)
我想要rand
使用Array
,以及任何可索引的东西,并具有length
:
import Base.Random
rand(thing) = thing[rand(1:length(thing))]
array = {1, 2, 3}
myRand(array)
range = 1:8
myRand(range)
tupple = (1, 2, 3, "a", "b", "c")
myRand(tupple)
Run Code Online (Sandbox Code Playgroud)
...但是,如果我尝试这个,我的实现堆栈溢出,大概是因为它是完全通用的并且匹配所有传递的东西,所以它最终调用自己?
有没有办法来解决这个问题?我想更好地理解Julia的多态函数,而不是修复这个特殊的(可能是愚蠢的)函数特化.
是否还有一个工具来发现可用的各种实现,以及将使用特定参数调用的调试?
好的,有些挖掘.这是有趣的…
我将启动一个新的REPL,并且:
julia> import Base.Random
julia> rand(thing) = thing[rand(1:length(thing))]
rand (generic function with 1 method)
julia> rand({1,2,3})
ERROR: stack overflow
in rand at none:1 (repeats 80000 times)
Run Code Online (Sandbox Code Playgroud)
...哦亲爱的,那是我正在谈论的递归调用和堆栈溢出.
但是,看这个.我杀了Julia并再次启动REPL.这次我import Base.Random.rand
:
julia> import Base.Random.rand
julia> rand(thing) = thing[rand(1:length(thing))]
rand (generic function with …
Run Code Online (Sandbox Code Playgroud) 我希望有一个UIView
实现类似方法的子类setNeedsDisplay
,除了重绘(即通常会被调用通过drawRect:
)将在后台线程中很快发生,而不是在当前更新周期结束时.
它可能被称为setNeedsAsynchronousDisplay
.或者现有的setNeedsDisplay
可能被劫持并且不会在循环结束时或者其他任何情况下重绘,只要它允许重绘不会发生在主线程阻塞屏幕上更新交互直到完成.
在重绘之前,视图可以继续使用其当前绘制的表示.
沿着这些方向的事情是否合理可行?
谢谢!
ios ×6
swift ×2
arrays ×1
cocoa-touch ×1
core-data ×1
drawrect ×1
julia ×1
nsstring ×1
polymorphism ×1
release ×1
testflight ×1
uifont ×1
uistoryboard ×1
uitextfield ×1
uiview ×1
xcode ×1