Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/100.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 如何在swift中比较NSDATA字节_Ios_Swift_Nsdata - Fatal编程技术网

Ios 如何在swift中比较NSDATA字节

Ios 如何在swift中比较NSDATA字节,ios,swift,nsdata,Ios,Swift,Nsdata,我从这里获得文件大小: let docummentdata: NSData = NSFileManager.defaultManager().contentsAtPath(path)! 现在我想知道docummentdata大小是否大于10MB。我想做点什么,还有别的什么。我试着这样做: var result: Int = Int(docummentdata.length) 而且 if docummentdata.length < 1e+7{ print("co

我从这里获得文件大小:

 let docummentdata: NSData = NSFileManager.defaultManager().contentsAtPath(path)!
现在我想知道docummentdata大小是否大于10MB。我想做点什么,还有别的什么。我试着这样做:

 var result: Int = Int(docummentdata.length)
而且

   if docummentdata.length < 1e+7{
       print("compared") 
     }
else
{ print("not compared")
}
如果docummentdata.length<1e+7{
打印(“比较”)
}
其他的
{打印(“未比较”)
}
我得到了这样的东西

二进制运算符<不能应用于Int和Double类型的操作数
如何比较字节并执行程序?

1e+7
是双精度
的文字符号

通过
Int
的初始值设定项运行它:

if docummentdata.length < Int(1e+7) {
    print("compared") 
}
else {
    print("not compared")
}

1e+7
Double
的文字符号

通过
Int
的初始值设定项运行它:

if docummentdata.length < Int(1e+7) {
    print("compared") 
}
else {
    print("not compared")
}

这个错误很明显。您正在尝试比较Int和Double。这是不可能的。那我怎么做呢?你能帮我吗?你的缩进是。。。在编程中有铸造的概念,它指的是将一种类型转换为另一种类型的行为。在您的例子中,您试图将十进制数(具有双精度)与整数进行比较。这种比较要求两种类型必须相同,因此需要进行转换。在Swift类型中,转换数字很容易,如文档()所示。如答案所示,
Int(1e+3)
将完成这项工作。@JavierQuevedo Thank youWell错误非常明显。您正在尝试比较Int和Double。这是不可能的。那我怎么做呢?你能帮我吗?你的缩进是。。。在编程中有铸造的概念,它指的是将一种类型转换为另一种类型的行为。在您的例子中,您试图将十进制数(具有双精度)与整数进行比较。这种比较要求两种类型必须相同,因此需要进行转换。在Swift类型中,转换数字很容易,如文档()所示。如答案所示,
Int(1e+3)
将完成这项工作。@JavierQuevedo谢谢你那些下划线表示什么?@Samjhana它们在语义上什么都不做。它们旨在提高可读性。比较
10_000_000_000_000
1000000000000
这些下划线表示什么?@Samjhana它们在语义上什么都不做。它们旨在提高可读性。将
10\u 000\u 000\u 000\u 000
1000000000000