我尝试共享文件内容的 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) 我有一个聚合管道,其中包含一个$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) 这就是我的意思.
我有一个像这样的构造函数的类:
Class() : base(GetConstructorArgument1(), GetConstructorArgument2())
{
}
Run Code Online (Sandbox Code Playgroud)
因为尽可能在基数调用中创建参数会非常麻烦和粗糙.必要时,这两种GetConstructorArgument方法都是静态的.
GetConstructorArgument2()创建一个lambdas数组.在那些lambdas中,我想做"这个",我正在构建的对象.
有没有办法做到这一点?