我有一个使用导航控制器的XCode iPad项目.我试图获得一个按钮将UISplitViewController推送到导航堆栈,但是出现了这个错误:
拆分视图控制器无法推送到导航控制器
原来UISplitViewController不能很好地与UINavigationController一起使用.但是,单击此按钮时,我仍需要显示拆分视图控制器.我该怎么做呢?而且,同样重要的是,如何制作一个后退按钮,以便用户可以返回到导航控制器?
考虑以下代码:
enum Type {
case Foo(Int)
case Bar(Int)
var isBar: Bool {
if case .Bar = self {
return true
} else {
return false
}
}
}
Run Code Online (Sandbox Code Playgroud)
真恶心.我想写这样的东西:
enum Type {
case Foo(Int)
case Bar(Int)
var isBar: Bool {
return case .Bar = self
}
}
Run Code Online (Sandbox Code Playgroud)
但是这样的构造似乎并不存在于Swift中,或者我找不到它.
由于每种情况都有相关的数据,我认为不可能~=
以与上述表达式等效的方式实现运算符(或任何其他帮助程序).并且在任何情况下,if case
所有枚举都存在免费语句,并且不需要手动实现.
因此,我的问题是:有没有isBar
比我上面所说的更简洁/声明/清洁/惯用的方式?或者,更直接地说,有没有办法将if case
语句表达为Swift 表达式?
我知道它可以在非SQL环境中轻松完成[后数据处理,前端,你有什么],但目前还不可能.有没有办法取一个decimal(5,2)
并将其转换为varchar
没有尾随零/小数点?例如:
declare @number decimal(5,2)
set @number = 123.00
select cast(@number as varchar) as FormattedNumber
Run Code Online (Sandbox Code Playgroud)
结果是'123.00'.是否有(简单)方法来获得'123'?同样,而不是'123.30','123.3'?可以通过弄清楚百分之十/十分位数是否为0并手动修剪字符来做到这一点,但我想知道是否有更优雅的解决方案.
奇怪的具体问题,但我有一个解决方案已经<span contentEditable="true">
通过使用隐藏粘贴纯文本textarea
,这似乎工作得很好,除了它打破浏览器的撤消功能.马上,我并不担心跨浏览器解决方案; 我只关心Chrome.我的方法大致如下:
$('.editable').live('paste', function()
{
var $this = $(this);
//more code here to remember caret position, etc
$('#clipboard').val('').focus(); //put the focus in the hidden textarea so that, when the paste actually occurs, it's auto-sanitized by the textarea
setTimeout(function() //then this will be executed immediately after the paste actually occurs
{
$this.focus();
document.execCommand('insertHTML', true, $('#clipboard').val());
});
});
Run Code Online (Sandbox Code Playgroud)
所以这是有效的 - 我可以粘贴任何东西,并且在进入我的contentEditable
字段之前它被简化为纯文本- 但是如果我在粘贴后尝试撤消:
#clipboard
,将焦点从我的移开contentEditable
.我已经尝试了所有我能想到的东西,让浏览器不要尝试撤消更改#clipboard
- display:none
当它没有主动使用时切换,切换readonly
和 …
似乎不同的iOS设备UINavigationBar
使用barStyle = UIBarStyleBlack
和translucent = YES
非常不同地呈现s .考虑:
iPhone 4,没有色调:
iPhone 5,没有色调:
iPhone 4 barTintColor = [UIColor colorWithWhite:0.0f alpha:0.5f]
:
iPhone 5, barTintColor = [UIColor colorWithWhite:0.0f alpha:0.5f]
:
iPhone 5在没有色调的情况下产生所需的效果,但4是不透明的.添加半透明色调使4看起来很好,但拧紧5.
iPad 2和3也是如此,理论上任何不支持iOS 7模糊效果的设备也是如此.
如果没有将这些旧设备列入黑名单,我如何检测设备是否支持模糊,以便我可以有条件地解决渲染差异?或者有没有办法在不使用色调的情况下标准化外观?
是否可以在UITextView中覆盖光标的颜色和自动更正气泡?这是在内置的Notes应用程序中完成的,但我不知道它是否是通过公共方式完成的.
我在任何文档中都找不到任何对此的引用,所以我担心它是UIKeyboard中的私有API集等.我错过了一些明显的东西吗
在和Haskell一起玩的时候碰到了这个,我很难过:
Hugs> :type (\x -> x^2)
\x -> x ^ 2 :: (Integral a, Num b) => b -> b
Run Code Online (Sandbox Code Playgroud)
a
在那做什么?我怎么读这个?如果我在GHCi中键入相同的内容,它会为我提供我期望的输出:
Prelude> :type (\x -> x^2)
(\x -> x^2) :: Num a => a -> a
Run Code Online (Sandbox Code Playgroud)
这是Hugs中的一个错误吗?
所以我创建了一个新的Xcode项目,并写了这个Podfile
:
use_frameworks!
target 'Repro' do
pod 'Alamofire'
pod 'Result'
end
Run Code Online (Sandbox Code Playgroud)
然后我跑了pod install
,打开了工作区,并创建了一个包含以下内容的新文件:
import Alamofire
import Result
private func something(request: Request) -> Result<Bool, NSError> {
fatalError()
}
Run Code Online (Sandbox Code Playgroud)
我尝试构建这个,但Xcode产生了错误'Result' is ambiguous for type lookup in this context
.所以我尝试了明显的修复:
import Alamofire
import Result
private func something(request: Request) -> Result.Result<Bool, NSError> {
fatalError()
}
Run Code Online (Sandbox Code Playgroud)
但这给了我错误Reference to generic type 'Result' requires arguments in <...>
,好像Swift正在将模块名称解析为类型名称.
什么是非明显的修复?
锈病书上说,它是地道的使用Rc::clone(&x)
,而不是x.clone()
用Rc
值,这样很明显,这不是典型的clone
。我完全赞成这一点,但我在实践中无法应用该理论。
我想克隆一个引用计数的结构,但将克隆转换为特征对象。我可以使用rc.clone()
,但不能使用Rc::clone(&rc)
. 这对我来说……很奇怪。
struct ListView {}
trait View {}
impl View for ListView {}
fn very_contrived_example() {
let list_view: Rc<ListView> = Rc::new(ListView {});
let mut views: Vec<Rc<dyn View>> = Vec::new();
// Using Rc::clone does not work:
// error[E0308]: mismatched types
//
// views.push(Rc::clone(&list_view));
// ^^^^^^^^^^ expected trait object `dyn View`, found struct `ListView`
//
// note: expected reference `&Rc<dyn View>`
// found reference `&Rc<ListView>`
// Using …
Run Code Online (Sandbox Code Playgroud) 看起来这可能是微不足道的,但是我的SQL没有达到标准,我无法弄明白.我只想从存储过程中选择一个返回的标量.基本上是这样的:
select dbo.sProcedure @param
Run Code Online (Sandbox Code Playgroud)
但这会引发错误.从过程中返回结果集并不是一个真正的选择.有可能这样做,还是我需要开始重写一些代码?
我正在自己做一些自定义自动完成的东西insertText:
,但是如果有一个自动更正的建议可见,则视图进入一个奇怪的状态.
如果我使用[textView unmarkText]
它,它会解散自动更正弹出的东西 - 但它接受自动更正(这是坏的).有没有办法以编程方式拒绝自动更正建议?
我当前的"解决方案"有效,但它很粗糙,而且我没有理由认为它将来会继续发挥作用.有一个更好的方法吗?
- (void)dismissAutocorrectSuggestionForTextView:(UITextView *)textView {
NSRange range = textView.selectedRange;
textView.text = textView.text;
textView.selectedRange = range;
}
Run Code Online (Sandbox Code Playgroud) ios ×4
iphone ×2
sql ×2
swift ×2
t-sql ×2
cocoa-touch ×1
haskell ×1
hugs ×1
ios5 ×1
ios7 ×1
ipad ×1
javascript ×1
jquery ×1
rust ×1
sql-server ×1
uikit ×1
uitextinput ×1
uitextview ×1
webkit ×1