小编che*_*ica的帖子

StaticLayout和DynamicLayout之间有什么区别

我理解这DynamicLayout是针对一个布局,其文本被更改,而StaticLayout处理不可变的文本.

但是,根据他们的文档,这两个类大多采用相同的方法:

http://developer.android.com/reference/android/text/StaticLayout.html http://developer.android.com/reference/android/text/DynamicLayout.html

具体来说,我没有setText()DynamicLayout课堂上看到一个方法.

它们的区别是什么,我如何使用它DynamicLayout来计算文本变化的布局?

layout android

9
推荐指数
1
解决办法
2037
查看次数

异步任务被评估两次

我使用以下方法异步并同时执行某些任务:

public async Task<Dictionary<string, object>> Read(string[] queries)
{
    var results = queries.Select(query => new Tuple<string, Task<object>>(query, LoadDataAsync(query)));

    await Task.WhenAll(results.Select(x => x.Item2).ToArray());

    return results
        .ToDictionary(x => x.Item1, x => x.Item2.Result);
}
Run Code Online (Sandbox Code Playgroud)

我希望该方法同时调用LoadDataAsync数组中的每个字符串,然后等待所有任务完成并返回结果.

  • 如果我运行这样的方法,它会LoadDataAsync为每个项调用两次,一次await ...在行,一次在最后一个.Result属性getter.
  • 如果我删除该await ...行,Visual Studio会警告我整个方法将并行运行,因为await该方法内部没有调用.

我究竟做错了什么?

是否有更好(更短)的方法来做同样的事情?

.net c# async-await

8
推荐指数
2
解决办法
2566
查看次数

更安全的TypeScript - 与普通TypeScript有什么不同

Microsoft Research提供了一种名为Safer TypeScript的新TypeScript编译器变体:

http://research.microsoft.com/en-us/downloads/b250c887-2b79-4413-9d7a-5a5a0c38cc57/

我找不到任何文档,我无法将其安装到我的TypeScript 1.0系统中,因为它需要TypeScript 0.9.5.

TypeScriptSafer TypeScript有什么区别?

typescript

7
推荐指数
1
解决办法
414
查看次数

在Android中以编程方式分配视图ID

我正在尝试以RelativeLayout编程方式创建一个有几个孩子.要使规则像RelativeLayout.RIGHT_OF工作一样,子视图必须具有适当的ID.

但是,当我尝试分配ID时,Android Studio会将其标记为错误:

view.setId(123);

ERROR: Expected resource of type id
Run Code Online (Sandbox Code Playgroud)

android android-layout android-studio

7
推荐指数
1
解决办法
1万
查看次数

如何以类型安全的方式从 TypeScript 类型中删除属性

我们有以下两个接口:

interface A {
  foo: string;
  bar: number;
}

interface B {
  foo: string;
}
Run Code Online (Sandbox Code Playgroud)

如何将符合 A 的对象类型安全地转换为符合 B 的对象?

这不起作用:

const a = { foo: "baz", bar: 42 }
const b: B = {...a}
delete b.bar           // <=== cannot remove "bar" because B has no "bar"
Run Code Online (Sandbox Code Playgroud)

我可以在没有类型安全的情况下做到这一点:

const a = { foo: "baz", bar: 42 }
const temp: any = {...a}
delete temp.bar
const b: B = temp
Run Code Online (Sandbox Code Playgroud)

我认为这有效:

const a = { foo: "baz", bar: 42 }
const …
Run Code Online (Sandbox Code Playgroud)

type-safety typescript

7
推荐指数
1
解决办法
2952
查看次数

MonoTouch Build:ld:未找到架构armv7的符号

我有一个MonoTouch项目,可以在i386/iOS模拟器上构建和运行.该项目引用了一个本机(Obj-C)库,我通过使用Xamarin的BindingSample中描述的btouch进程将其转换为MonoTouch DLL:

https://github.com/xamarin/monotouch-samples/tree/eb640165f0485ff59b2f80e73ccff382bf4f2083/BindingSample/src/binding

所以,我的makefile构建三个体系结构(i386,用于ARMv6和ARMv7),然后将三个输出连接到一个"通用"库,最后使用btouch生成一个DLL MonoTouch的.

为了确保我的通用库包含所有三种体系结构,我检查过lipo -info,实际上它包含i386,armv6和armv7.

但是,当我在实际的iOS设备上进行部署时,我会收到以下错误:

Undefined symbols for architecture armv7:
  "_ABAddressBookCreate", referenced from:
      -[ContactsTokenField setupSms] in libContactsTokenFieldViewUniversal.a(ContactsTokenField.o)
      -[TITokenFieldView setupWithAddressType:prompt:] in libContactsTokenFieldViewUniversal.a(TITokenField.o)
  "_ABAddressBookCopyArrayOfAllPeople", referenced from:
      -[ContactsTokenField setupSms] in libContactsTokenFieldViewUniversal.a(ContactsTokenField.o)
      -[TITokenFieldView setupWithAddressType:prompt:] in libContactsTokenFieldViewUniversal.a(TITokenField.o)
  "_ABAddressBookGetPersonCount", referenced from:
      -[ContactsTokenField setupSms] in libContactsTokenFieldViewUniversal.a(ContactsTokenField.o)
      -[TITokenFieldView setupWithAddressType:prompt:] in libContactsTokenFieldViewUniversal.a(TITokenField.o)
  "_ABRecordCopyValue", referenced from:
      -[ContactsTokenField setupSms] in libContactsTokenFieldViewUniversal.a(ContactsTokenField.o)
      -[TITokenFieldView setupWithAddressType:prompt:] in libContactsTokenFieldViewUniversal.a(TITokenField.o)
  "_kABPersonFirstNameProperty", referenced from:
      -[ContactsTokenField setupSms] in libContactsTokenFieldViewUniversal.a(ContactsTokenField.o)
      -[TITokenFieldView setupWithAddressType:prompt:] in libContactsTokenFieldViewUniversal.a(TITokenField.o)
      -[ContactsTokenField setupSms] in libContactsTokenFieldViewUniversal.a(ContactsTokenField.o)
      -[TITokenFieldView setupWithAddressType:prompt:] in libContactsTokenFieldViewUniversal.a(TITokenField.o)
  "_kABPersonLastNameProperty", referenced …
Run Code Online (Sandbox Code Playgroud)

xamarin.ios armv7 ios

6
推荐指数
1
解决办法
2381
查看次数

LINQ to XML忽略属性中的换行符

根据这个问题:

是否允许XML属性值中的换行符?

XML属性中的换行符完全有效(尽管可能不推荐):

<xmltag1>
    <xmltag2 attrib="line 1
line 2
line 3">
    </xmltag2>
</xmltag1>
Run Code Online (Sandbox Code Playgroud)

当我使用LINQ to XML(System.Xml.Linq)解析这样的XML时,这些换行符将以静默方式转换为空格' '字符.

有没有办法告诉XDocument.Load()解析器保留这些换行符?

PS:我正在解析的XML是由第三方软件编写的,因此我无法改变换行符的写入方式.

.net xml linq-to-xml xml-attribute c#-4.0

6
推荐指数
1
解决办法
1300
查看次数

iPad在仪器目标选择中变得灰暗

我正试图在Instruments中分析一个iPad应用程序,但无论我选择哪种分析设置,我都不能选择iPad作为分析目标:

在此输入图像描述

如果我将鼠标悬停在"附加到进程"上,我看到的唯一内容是灰色的"应用程序"和"系统"条目.

有关我无法在iPad上使用乐器的原因的任何提示?

xcode instruments xamarin.ios ios

6
推荐指数
1
解决办法
3499
查看次数

PDFSharp:使用自动换行测量长文本的高度

PDFSharp 在绘制长文本部分时支持自动文本换行:

textFormatter.DrawString(text, font, XBrushes.Black, new XRect(x, y, textAreaWidth, 1000), XStringFormats.TopLeft);
Run Code Online (Sandbox Code Playgroud)

如果文本长于,这将换行 textAreaWidth.

如何获取刚刚绘制的文本的高度?

我用 尝试过gfx.MeasureString(),但没有支持指定最大宽度的重载。gfx.MeasureString()返回没有文本换行的文本大小。

感谢您的任何提示。

c# pdf pdf-generation pdfsharp

6
推荐指数
2
解决办法
9581
查看次数

未在登录请求中设置ASP.NET标识

我正在使用ASP.NET身份和a ClaimsIdentity来验证我的用户.对用户进行身份验证时,该属性User.Identity包含一个ClaimsIdentity实例.

但是,在登录请求期间不是这种情况:

    public async Task<ActionResult> Login(LoginViewModel model, string returnUrl)
    {
        if (!ModelState.IsValid)
        {
            return View(model);
        }

        var result = await SignInManager.PasswordSignInAsync(model.Email, model.Password, false, shouldLockout: false);
        switch (result)
        {
            case SignInStatus.Success:
                var identity = User.Identity;

------------>   // identity is of type WindowsIdentity  <------------

                return RedirectToLocal(returnUrl);
Run Code Online (Sandbox Code Playgroud)

如您所见,即使登录成功,该属性User.Identity尚未设置为ClaimsIdentity实例.我认为这是合理的,这意味着SignInManager不会更新属性,所以我们必须等到下一个请求才能看到登录结果.

但是,我必须在方法之后执行其他逻辑PasswordSignInAsync,因此我需要一种方法来获取switch语句ClaimsIdentity.Success分支中的实例.

在检查SignInManager调试器时,我看到它是类型的Microsoft.Owin.Security.AuthenticationManager,它具有SignInEntry.Item1包含ClaimsIdentity我正在寻找的属性.

但是,类型Microsoft.Owin.Security.AuthenticationManager不公开,所以唯一的方法似乎是使用反射的黑客.

有更好的方法吗?

asp.net asp.net-mvc asp.net-identity-2

6
推荐指数
2
解决办法
1450
查看次数