小编Aur*_*ast的帖子

如何与 UIActivityViewController 共享文本文件

我尝试共享文件内容的 NSData 对象,活动视图中出现邮件选项,然后显示邮件撰写控制器,但没有附件。

我尝试过与文件路径共享 NSUrl,但在这种情况下,当活动视图出现时,它会占据整个屏幕,但除了底部的“取消”按钮之外,它是空白的。诡异的。此外,在这种情况下,活动视图仅出现在设备上,它甚至从未出现在模拟器上。

如果我将 NSData 转换为 NSString,那么它确实可以工作,但它只是将字符串粘贴到电子邮件正文中。我不想这样,我想附加一个文件。

我使用调试器来验证 NSData 对象是否具有(正确的)数据以及 NSUrl 对象是否具有正确的文件路径。没有骰子。

        var documents = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments);
        var file = Path.Combine(documents, "file.txt");
        NSData dataToShare = NSFileManager.DefaultManager.Contents(file);

        UIActivityViewController activityViewController = new UIActivityViewController(new NSObject[] { dataToShare }, null); //Email comes up but data isn't attached

        // OR

        UIActivityViewController activityViewController = new UIActivityViewController(new NSObject[] { new NSUrl(file) }, null); //Activity view takes up the whole screen and is blank

        // OR

        UIActivityViewController activityViewController = new UIActivityViewController(new NSObject[] { (NSString)dataToShare.ToString() }, null); //Pastes …
Run Code Online (Sandbox Code Playgroud)

xamarin.ios ios xamarin uiactivityviewcontroller

5
推荐指数
0
解决办法
1757
查看次数

尽管前一阶段输出了文档,$group 阶段仍返回零文档

Mongo Playground 中的复制

我有一个聚合管道,其中包含一个$lookup阶段,然后是一个$match阶段,然后是一个$group阶段。

奇怪的是(无论如何对我来说),虽然$match阶段输出一个文档(可以通过暂时删除$group阶段来看到),但$group它之后的阶段输出零个文档。如果一个$group阶段有任何输入文档,我希望它始终至少有一个输出文档。为什么这里的情况不是这样呢?

上面的 Mongo Playground 链接重现了相关行为。

这是输出零文档的聚合管道:

db.orders.aggregate([
  {
    "$lookup": {
      "from": "products",
      "localField": "products.0.productId",
      "foreignField": "_id",
      "as": "firstProduct"
    }
  },
  {
    "$match": {
      "firstProduct.0.name": "Apron"
    }
  },
  {
    "$group": {
      "_id": null,
      "numOrders": {
        $sum: 1
      }
    }
  }
]);
Run Code Online (Sandbox Code Playgroud)

这是删除了小组赛阶段的相同流程。它返回一份文档。

db.orders.aggregate([
  {
    "$lookup": {
      "from": "products",
      "localField": "products.0.productId",
      "foreignField": "_id",
      "as": "firstProduct"
    }
  },
  {
    "$match": {
      "firstProduct.0.name": "Apron"
    }
  } …
Run Code Online (Sandbox Code Playgroud)

mongodb aggregation-framework

5
推荐指数
1
解决办法
95
查看次数

在用于构造对象的静态方法中使用"this"

这就是我的意思.

我有一个像这样的构造函数的类:

Class() : base(GetConstructorArgument1(), GetConstructorArgument2())
{
}
Run Code Online (Sandbox Code Playgroud)

因为尽可能在基数调用中创建参数会非常麻烦和粗糙.必要时,这两种GetConstructorArgument方法都是静态的.

GetConstructorArgument2()创建一个lambdas数组.在那些lambdas中,我想做"这个",我正在构建的对象.

有没有办法做到这一点?

c# lambda constructor static-methods

0
推荐指数
1
解决办法
96
查看次数