小编Gad*_*air的帖子

我是否必须在清单文件中声明每个活动?

我想创建一个Activity,但不必在清单文件中声明它.这可能吗?我看到的每个地方似乎都必须在清单中声明每个活动,但我注意到我的清单文件中没有声明某些活动,例如内置的ChooserActivity.

android android-manifest android-activity

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

使用GZipStream压缩空输入会导致C#中的gz文件无效

我使用C#GZipStream类来压缩一些输入数据.问题是输入为空时.在那种情况下,它最终创建一个0字节的文件.当我尝试使用7zip解压缩生成的.gz文件时,它会提示错误,说明格式无效.如果我有非空输入,它工作正常.请告诉我如何创建一个将解压缩为0字节文件的有效.gz文件?

var file = new FileStream("foo.txt.gz", FileMode.Create, FileAccess.ReadWrite);
var gzip = new GZipStream(file, CompressionMode.Compress);
var writer = new StreamWriter(gzip);

for (string line in input) {
    writer.Write(line);
}

writer.Close();
gzip.Close();
file.Close();
Run Code Online (Sandbox Code Playgroud)

在上面的代码中,如果我的'input'数组为空,我最终会写一个名为foo.txt.gz的文件,其中包含0个字节,而7zip表示该文件无效.但是如果我有一个非空数组,我会得到一个有效的文件.请告诉我如何修改我的代码以解决问题,即使输入为空,我也会得到一个有效的.gz文件.谢谢!


编辑:这可能是.NET中的一个错误.如果您发现了同样的问题,并一致认为这是一个错误,请投上:https://connect.microsoft.com/VisualStudio/feedback/details/888912/gzipstream-creates-invalid-gz-files-when-input-是空的

c# compression gzip gzipstream

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

如何避免在带有Swift 4的iOS 11中使用带有刷新控件的@objc?

我将我的项目从Swift 3升级到Swift 4,在迁移过程中,它在我的代码中插入了一堆"@objc"注释.我希望摆脱它们以避免生成任何Objective-C入口点.其中一个我无法弄清楚如何摆脱,使用刷新控件.这是违规代码:

let refreshControl = UIRefreshControl()
refreshControl.addTarget(self, action: #selector(MyController.handleRefresh(refreshControl:)), for: .valueChanged)
self.table.refreshControl = refreshControl;
Run Code Online (Sandbox Code Playgroud)

问题是它似乎使用了#selector.如何在没有选择器的情况下实现刷新控制?

ios uirefreshcontrol swift4 ios11

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