小编Cul*_*tes的帖子

在更新启用bitcode的框架后,IOS应用程序大小翻了一番

在上个月,我上传了两个BuildF for TestFlight.在ItunesConnect上,一个大小为63MB,而另一个大小为160MB!更糟糕的是:它在TestFlight上显示195MB,而对于其他帖子,它将是App Store上的两倍!

我使用的框架/库:

  • Facebook SDK:我Inlcude FBSDKCoreKit和FBSDKLoginKit.(只需将.framework项目拖放到项目中即可.
  • Alamofire,两个版本都包含swift 2.0预发布分支(Xcode 7仍然处于测试阶段).我通过拖放.xcodeproj到我的应用程序中包含此内容.
  • Google Cloud Messeging,通过CocoaPods下载.

regarding changes:

  • 我将FacebookSDK更新为最新的SDK(v4.6.0).要检查这是否是问题,我再次包含旧SDK,并检查文件大小,但这没有任何区别.
  • 我更新了Alamofire,包括通过cocoapods发布的官方消息.包括via cocoapods在内的文件大小增加了17MB,所以我换回了包括.xcodeproj在我的项目中.

Regarding code: 没什么大不了的,只是bug修复.

我为我的应用程序禁用了bitcode,因为GCM尚不支持此功能,它支持Facebook SDK和Alamofire.

我真的很想知道为什么文件大小变化如此之大.这可能与Xcode 7的发布有关,因为较低的文件大小版本是在使用Xcode 7 beta时发布的.

在Itunes Connect上,它说:Supported Architectures: armv7, arm64Required Capabilities armv7

发送32位版本的应用程序是一件好事吗?这会减小文件大小吗?它会拒绝我的应用吗?

有任何想法吗?

xcode ios swift xcode7 bitcode

3
推荐指数
1
解决办法
3734
查看次数

使用Expression.Parameter中的子属性来构建linq表达式

假设我们有以下正则表达式:

var result = SomeList.Where(item => item.Status.Description.Contains("READY"));
Run Code Online (Sandbox Code Playgroud)

对于这些对象:

public class Movie
{
    public MovieStatus Status {get; set;}
}
public class MovieStatus
{
    public string Description {get; set;}
}
Run Code Online (Sandbox Code Playgroud)

这不起作用:

ParameterExpression pe = Expression.Parameter(typeof(T), "item.Status");
MemberExpression propExp = Expression.Property(pe, "Description");//boem! Description is not a property of T.
Run Code Online (Sandbox Code Playgroud)

通过T属性的一些递归,我可以获得正确的信息,MemberExpression并且在调试时看起来还不错,最后我有了以下lambda表达式:

{item => item.Status.Description.Contains(“ READY”)}

并且,将这些表达式应用于IQueryable列表时,将是以下结果:

{System.Collections.Generic.List`1 [Movie] .Where(item => item.Status.Description.Contains(“ READY”))}

看起来不错,但是当编译/执行列表中的表达式时,它给了我以下错误:

附加信息:从范围''引用的类型为'MovieStatus'的变量'item.Status',但未定义

我如何需要“链接” ParameterExpression到以获得上面的lambda表达式?

真正的代码没有这些固定变量,它是具有任何子属性的任何对象都可以使用的通用实现。输入的是标准格式XX.YY的属性名称,以及一个比较值。发布所有代码有点大,但是下面是其中的一部分,删除了所有递归以关注问题。递归的一些结果已在此处进行了硬编码。此外,并非总是如此Contains

    public static void Test<T>(IQueryable<T> source)
    {
        string propertyName …
Run Code Online (Sandbox Code Playgroud)

c# recursion lambda linq-expressions

3
推荐指数
1
解决办法
748
查看次数

如何在Android中设置吐司的宽度?

有没有简单的方法来set widthToast不定制呢?

谢谢,尼塔尔

更新:

没有这样的方法......我最终以这种方式定制了它......

http://developer.android.com/guide/topics/ui/notifiers/toasts.html

android toast

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

SQL检查表是否存在于C#中,如果不存在则创建

我想我几乎看到了与这个问题相关的每一页,最可能的答案是 检查SQL表是否存在 但是并不是真的理解它.这就是我得到的:

    private void select_btn_Click(object sender, EventArgs e)
    {
        string theDate = dateTimePicker1.Value.ToString("dd-MM-yyyy");
        SqlConnection SC = new SqlConnection("Data Source=ruudpc;Initial Catalog=leden;Integrated Security=True");
        SqlCommand DateCheck = new SqlCommand("SELECT * FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = '" + theDate + "'");
    }
Run Code Online (Sandbox Code Playgroud)

现在我想要DateCheck.ExecuteScalar()的返回值; 这可以告诉我它是否存在,可能很简单.

编辑

无论是sql注入部分,对于某些人来说这个问题是有帮助的,通常不好的做法是动态创建表,我建议你重新考虑你的ERD.只是说.

c# sql sql-server sqlcommand information-schema

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

EF核心条件(添加)包括在IQueryable中

在EF6中,我习惯于这样做:

var orders = GetAllEntities().Include(x => x.Contact.User);
if (includeProducts)
{
    orders = orders.Include(x => x.ProductOrders.Select(y => y.RentStockOrders));
    orders = orders.Include(x => x.ProductOrders.Select(y => y.Product));
    orders = orders.Include(x => x.ProductOrders.Select(y => y.Currency));
    orders = orders.Include(x => x.ProductOrders.Select(y => y.Coupons));
    orders = orders.Include(x => x.AdditionalCosts);
    orders = orders.Include(x => x.Partner);
    orders = orders.Include(x => x.OrderCoupons.Select(y => y.Coupon.Partner));
    if (includeStock)
    {
        orders = orders.Include(x => x.ProductOrders.Select(y => y.RentStockOrders.Select(z => z.Stock)));
    }
}
if (includeInvoices)
{
    orders = orders.Include(x => x.Invoices.Select(y => y.Attachments));
} …
Run Code Online (Sandbox Code Playgroud)

c# iqueryable entity-framework-core

2
推荐指数
1
解决办法
764
查看次数

当前的.NET SDK不支持定位.NET Core 2.2。(SDK 2.2.202)

许多类似问题中的另一个问题,但没有找到所寻求的解决方案,对此有所帮助(请参阅下面的内容)。

在撰写本文时,.NET Core v2.2已无法预览,最新版本为v2.2.202(发布日期,02-04-2019)。

我通过“安装其他框架”安装了那个,我安装了x64一个,较早安装的所有其他版本也是那个版本。

安装后,当我创建一个新项目时,它会显示:

在此处输入图片说明

但是,当我然后打开属性时,它不会:

在此处输入图片说明

在此处输入图片说明

dotnet --info 在项目目录中,得到以下结果:

.NET Core SDK (reflecting any global.json):
 Version:   2.2.202
 Commit:    8a7ff6789d

Runtime Environment:
 OS Name:     Windows
 OS Version:  10.0.17134
 OS Platform: Windows
 RID:         win10-x64
 Base Path:   C:\Program Files\dotnet\sdk\2.2.202\

Host (useful for support):
  Version: 2.2.3
  Commit:  6b8ad509b6

.NET Core SDKs installed:
  2.1.2 [C:\Program Files\dotnet\sdk]
  2.1.4 [C:\Program Files\dotnet\sdk]
  2.1.201 [C:\Program Files\dotnet\sdk]
  2.1.202 [C:\Program Files\dotnet\sdk]
  2.1.401 [C:\Program Files\dotnet\sdk]
  2.1.505 [C:\Program Files\dotnet\sdk]
  2.2.202 [C:\Program Files\dotnet\sdk]

.NET Core runtimes installed:
  Microsoft.AspNetCore.All 2.1.2 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.All]
  Microsoft.AspNetCore.All 2.1.9 …
Run Code Online (Sandbox Code Playgroud)

c# visual-studio .net-core .net-core-2.2

2
推荐指数
1
解决办法
4453
查看次数