我正在尝试创建一个textarea
看起来完全像一个div
.
但是,在iOS上有3个像素来自我无法删除的地方.
这是我的代码:
<!doctype html>
<title>Textarea test</title>
<style>
textarea, div
{
background: yellow;
font: 13px arial;
border: 0;
padding: 0;
border-radius: 0;
margin: 0;
-webkit-appearance: none;
}
</style>
<div>test</div>
<hr>
<textarea>test</textarea>
Run Code Online (Sandbox Code Playgroud)
这样渲染(我放大了):
截图显示,在我要删除的文本之前有3个像素.据我所知,它不是边距/填充或边框.
这发生在我的iPhone和iPad上,都运行iOS 4.3.并且要清楚; 我的桌面上的Safari/Firefox/Chrome上没有显示这3个额外的像素.或者我兄弟的Windows Phone,就此而言.
编辑2011-08-10:
我刚刚测试了这个<input type=text>
并且出现了相同的"填充"事物,除了它是1像素而不是3.
我有几个单元测试,我想测试是否在正确的调度队列上调用了回调.
在Swift 2中,我将当前队列的标签与我的测试队列进行了比较.但是在Swift 3中,DISPATCH_CURRENT_QUEUE_LABEL
常量不再存在.
我确实找到了这个dispatch_assert_queue
功能.这似乎是我需要的,但我不知道如何称呼它.
我的Swift 2代码:
let testQueueLabel = "com.example.my-test-queue"
let testQueue = dispatch_queue_create(testQueueLabel, nil)
let currentQueueLabel = String(UTF8String: dispatch_queue_get_label(DISPATCH_CURRENT_QUEUE_LABEL))!
XCTAssertEqual(currentQueueLabel, testQueueLabel, "callback should be called on specified queue")
Run Code Online (Sandbox Code Playgroud)
更新:
我对缺乏自动完成感到困惑,但可以使用__dispatch_assert_queue
:
if #available(iOS 10.0, *) {
__dispatch_assert_queue(test1Queue)
}
Run Code Online (Sandbox Code Playgroud)
虽然这确实适用于单元测试,但它会烦人地停止整个过程EXC_BAD_INSTRUCTION
而不是仅仅测试失败.
所以,为了好玩,我一直在使用Peano数字和智能构造函数在Haskell中使用CountedList类型.
类型安全head
,tail
对我来说真的很酷.
我想我已达到了解我该怎么做的极限
{-# LANGUAGE EmptyDataDecls #-}
module CountedList (
Zero, Succ, CountedList,
toList, ofList,
empty, cons, uncons,
head, tail,
fmap, map, foldl, foldr, filter
) where
import qualified List (foldr, foldl, filter)
import Prelude hiding (map, head, foldl, foldr, tail, filter)
data Zero
data Succ n
data CountedList n a = CL [a]
toList :: CountedList n a -> [a]
toList (CL as) = as
ofList :: [a] -> CountedList n a
ofList …
Run Code Online (Sandbox Code Playgroud) .NET XmlTextWriter
会创建无效的xml文件.
在XML中,允许一些控制字符,例如'horizontal tab'(	
),但其他控件字符不像'vertical tab'(
).(见规格)
我有一个字符串,其中包含XML中不允许的UTF-8控制字符.
虽然XmlTextWriter
逃避了角色,但最终的XML仍然是无效的.
如何确保XmlTextWriter
永远不会生成非法的XML文件?
或者,如果无法执行此操作XmlTextWriter
,如何从字符串中删除XML中不允许的特定控制字符?
示例代码:
using (XmlTextWriter writer =
new XmlTextWriter("test.xml", Encoding.UTF8))
{
writer.WriteStartDocument();
writer.WriteStartElement("Test");
writer.WriteValue("hello \xb world");
writer.WriteEndElement();
writer.WriteEndDocument();
}
Run Code Online (Sandbox Code Playgroud)
输出:
<?xml version="1.0" encoding="utf-8"?><Test>hello  world</Test>
Run Code Online (Sandbox Code Playgroud) 我正在编写处理来自Language.Exts.Annotated.Syntax的值的代码,其中定义了各种类型的镜像Haskell模块的结构:
data Module l = ...
data Decl l = ...
data Exp t = ...
-- etc
Run Code Online (Sandbox Code Playgroud)
我希望能够编写处理这些数据结构并对它们执行各种转换的函数.因为没有一种常见的数据类型,所以我无法编写一个可以完成所有操作的函数.
到目前为止,我已经编写了一个Tree
包装这些类型的类型,以便我的转换函数可以执行Tree l -> Tree l
:
data Tree l = ModuleT (Module l)
| DeclT (Decl l)
| ExpT (Exp l)
-- etc copy & paste
Run Code Online (Sandbox Code Playgroud)
但是我现在发现自己编写了很多代码,需要Module
包含它ModuleT
,包装它,调用函数,然后再将结果重新打包Module
.我有:
class AnnotatedTree ast where
tree :: ast l -> Tree l
untree :: Tree l -> ast l
instance AnnotatedTree Module where
tree …
Run Code Online (Sandbox Code Playgroud) 我尝试为我的应用程序构建一个WatchKit扩展...
我更新了pods文件,如下所示:
platform:ios, '8.0'
use_frameworks!
source 'https://github.com/CocoaPods/Specs.git'
link_with 'my-team-ios', 'My Team WatchKit Extension'
def shared_pods
pod 'DOSingleton'
pod 'JSONModel'
pod 'MagicalRecord'
end
target :'My App' do
shared_pods
pod 'Facebook-iOS-SDK', '~> 3.23.1'
pod 'Reveal-iOS-SDK', :configurations => ['Debug']
... some more pods here...
end
target :'My Team WatchKit Extension' do
shared_pods
end
Run Code Online (Sandbox Code Playgroud)
我如何安装pod并且没有出错...
但是,当我构建应用程序时,我收到此错误:
ld: framework not found Pods
clang: error: linker command failed with exit code 1 (use -v to see invocation)
Run Code Online (Sandbox Code Playgroud)
我的问题在这里是什么?
我正在研究Roslyn扩展,以警告不受保护.Value
的Nullable<T>
值访问.
这提供了以下行为:
这个扩展已经很有效了,但是测试访问是否"安全"的代码有点像黑客.我现在只需走语法树,寻找if
语句.
这种方法非常难看,会产生一堆无效的警告.
以下是访问x.Value
应该是安全的一些示例:
int y;
int? x = foo();
y = x != null ? x.Value : 42;
if (x > 4)
y = x.Value;
if (x != null && someExpr) // With && only one branch needs to be a test
y = x.Value;
if (x == 3 || x == 4) // With || both branches must be a test
y = x.Value;
if …
Run Code Online (Sandbox Code Playgroud) 使用NodaTime库,如何根据周数和周WeekYear计算一周中第一天的LocalDate.
与此相反:
var date = new LocalDate(2012, 1, 1);
int weekYear = date.WeekYear; // 2011
int weekNr = date.WeekOfWeekYear; // 52
Run Code Online (Sandbox Code Playgroud)
像这样的假代码:
var newDate = LocalDate.FirstDayFromWeek(weekYear, weekNr);
Run Code Online (Sandbox Code Playgroud) 这个问题出现在阅读关于应用函子的优秀的Learn You a Haskell的新篇章中.
作为Maybe实例的定义的一部分,Applicative类型类具有:
pure = Just
Run Code Online (Sandbox Code Playgroud)
如果我只是去GHCi并导入Control.Applicative,并执行:
pure (3+)
Run Code Online (Sandbox Code Playgroud)
我没有得到任何东西(有道理).但是,如果我在表达式的一部分中使用它:
pure (3+) <*> Just 4
Run Code Online (Sandbox Code Playgroud)
我得到的只是7.我想这也就不足为奇了,但是我错过了关于类型类如何工作的一些不可或缺的东西,我认为,pure
这里的调用没有含糊之处.
如果我的困惑有意义,任何人都可以详细解释发生了什么吗?
有没有办法收集(例如在List中)不共享一个共同超类的多个"通用"对象?如果是这样,我如何访问他们的共同属性?
例如:
class MyObject<T>
{
public T Value { get; set; }
public string Name { get; set; }
public MyObject(string name, T value)
{
Name = name;
Value = value;
}
}
var fst = new MyObject<int>("fst", 42);
var snd = new MyObject<bool>("snd", true);
List<MyObject<?>> list = new List<MyObject<?>>(){fst, snd};
foreach (MyObject<?> o in list)
Console.WriteLine(o.Name);
Run Code Online (Sandbox Code Playgroud)
显然,这是伪代码,这不起作用.
此外,我不需要访问.Value属性(因为这不是类型安全的).
编辑:既然我一直在考虑这个问题,那么可以使用子类.但是,我认为这意味着我必须为每个新类型编写一个新的子类.
@ Grzenio 是的,这完全回答了我的问题.当然,现在我需要复制整个共享接口,但这不是一个大问题.我应该想到这个......
@ aku 你对鸭子打字是正确的.我不希望可以访问两个完全随机类型的对象.
但我认为通用对象会共享某种通用接口,因为它们完全相同,除了它们被参数化的类型.显然,情况并非如此.
我有一个ASP.NET MVC 3应用程序,其动作同时使用RequireHttps
和OutputCache
属性:
[RequireHttps]
[OutputCache(Duration = 14400, VaryByCustom = "CurrentUser"]
public ActionResult VersionB()
{
return View();
}
Run Code Online (Sandbox Code Playgroud)
当我导航到该页面时,我会按预期重定向到HTTPS.
但是,在初始页面加载之后,我仍然可以通过HTTP访问页面.如果我删除该OutputCache
属性,我将无法再通过HTTP访问该页面.
似乎OutputCache忽略了HTTPS,因此允许对页面进行不安全的访问.是否可以缓存通过HTTPS提供的操作?