我目前正在使用SharpZip api处理我的zip文件条目.它适用于压缩和解压缩.但是,我无法确定文件是否为zip文件.我需要知道是否有办法检测文件流是否可以解压缩.原来我用过
FileStream lFileStreamIn = File.OpenRead(mSourceFile);
lZipFile = new ZipFile(lFileStreamIn);
ZipInputStream lZipStreamTester = new ZipInputStream(lFileStreamIn, mBufferSize);// not working
lZipStreamTester.Read(lBuffer, 0, 0);
if (lZipStreamTester.CanDecompressEntry)
{
Run Code Online (Sandbox Code Playgroud)
LZipStreamTester每次都变为null,if语句失败.我尝试使用/不使用缓冲区.任何人都可以提供任何有关原因的见解吗?我知道我可以检查文件扩展名.我需要的东西比那更明确.我也知道zip有一个神奇的#(PK的东西),但它不能保证它永远存在,因为它不是格式的要求.
另外我读到.net 4.5有本机zip支持,所以我的项目可能会迁移到而不是sharpzip,但我仍然需要没有看到类似于CanDecompressEntry的方法/参数:http://msdn.microsoft.com/en-我们/库/ 3z72378a%28V = vs.110 29%
我的最后一招是使用try catch并尝试解压缩文件.
编辑:这不是框架的问题.框架在正确的位置.这是关闭的内容.是的,我们正在补偿明确的状态栏.ViewDidLoad显示内容偏移量为0,0.
在我的应用程序的每个页面上都有一个滚动视图,它的内容被按下20像素.我认为它可能与新的StatusBar有关,或者没有.该错误似乎也出现在模拟器设置菜单中.截图如下.这似乎只影响添加到ViewController的第一个滚动视图,并且只有在没有添加其他视图的情况下才会这样.表视图也受到影响,因为它们从Scroll视图继承.要清楚,滚动视图从正确的原点开始,但内容按下20像素.这很奇怪,因为我认为如果它是一个状态栏问题,它将高于20像素而不是低于.
目前我们正在通过将其添加到我们的基本视图控制器来修复它
UIView *hackView = [[UIView alloc] init];
hackView.frame = CGRectMake(0, 0, 0, 0);
[self.view addSubview:hackView];
Run Code Online (Sandbox Code Playgroud)
显然,这是一个黑客.
在构建最新的IOS7时,即使使用IOS7的金牌会员版本,手机和模拟器也会发生同样的事情.您甚至可以在模拟器的设置表视图中看到该错误的示例,也可以在我们的下面看到.


这是加载后的屏幕截图.我们注意到的一个奇怪的事情是,当我们执行一个拉动刷新时,它将纠正滚动视图并停留在它的正确位置.或者,如果我们进行补偿,它在开始时看起来是正确的,但任何后续的刷新操作都会将scrollview迁移到-20px
如果我有一个像这样设置的类来自定义UIView.
@interface myView:UIView
- (id)init {
self = [super init];
if(self){
[self foo];
}
return self;
}
- (id)initWithFrame:(CGRect)frame
{
self = [super initWithFrame:frame];
if (self) {
// Initialization code
[self foo];
}
return self;
}
-(void) foo{
//Build UIView here
}
Run Code Online (Sandbox Code Playgroud)
为什么我会使用foo两次
myView *aView = [[myView alloc]init]];
Run Code Online (Sandbox Code Playgroud)
要么
myView *aView = [[myView alloc]initWithFram:aFrame];
Run Code Online (Sandbox Code Playgroud) 有没有办法搜索我的项目中的所有文件名?
在Xcode中,底部的镜头搜索项目中所有文件的名称,这是一种非常快速和直观的方式来浏览您熟悉的项目.
Appcode中有类似的东西吗?
以下是我的代码.我正在使用GNU G ++编译器.我收到错误"main.cpp:在函数中'int main()':main.cpp:12:9:错误:'class hash'没有名为'printVectorContents'的成员"
我知道我忽略了一些愚蠢的东西,我无法用手指指着它.有帮助吗?
int main()
{
std::cout << "Yeah you did dat"<<std::endl;
hash<int> newHash;
newHash.printVectorContents();
std::cin.get();
return 0;
}
Run Code Online (Sandbox Code Playgroud)
和我的模板课......
template <class dataTypeClass> class hash{
private:
std::vector <dataTypeClass> hashVector;
std::string mName;
public:
hash(){}
hash(std::string aName = "unnamedHash"):mName(aName),hashVector(100,NULL){}
~hash(){std::cout<<"Hash "<<mName<<"destructing!";}
void addHashItem(dataTypeClass aHashItem, std::string akey){}
int hashFunction(dataTypeClass hashItem){return 0;}
void printVectorContents()
{
for (typename std::vector<dataTypeClass>::iterator i = hashVector.begin(); i<hashVector.rend(); i++)
{
std::cout<< *i << std::endl;
}
}
};
Run Code Online (Sandbox Code Playgroud) ios ×2
objective-c ×2
.net-4.5 ×1
appcode ×1
c# ×1
c++ ×1
cocoa-touch ×1
ios7 ×1
iphone ×1
sharpziplib ×1
templates ×1
vector ×1
zip ×1