2011-10-01 64 views

回答

5

是的,这是可能的。请参见下面的教程(使用强大的 “谷歌” 搜索引擎找到);)

http://iphoneincubator.com/blog/device-information/how-to-obtain-total-and-available-disk-space-on-your-iphone-or-ipod-touch

编辑:添加响应回复:写的UIImage磁盘,未知可用磁盘空间:

的try-catch做事的坏方法。可可的例外仅限于真正的特殊情况(即可靠性)。如果你写使用

NSData *imageData = [myImage UIImageJPEGRepresentation]; 

(或UIImagePNGRepresentation)

和你的图像,然后

NSError *error; 
BOOL success = [imageData writeToFile:(NSString *)path options:(NSDataWritingOptions)mask error:&error]; 

BOOLfailed会告诉你,如果它的工作,并error将包含一个NSError对象与说明的错误(不要为error != nil测试,偶尔会崩溃)。通话结束后',这样你就可以安全地测试`误差= nil`;

+0

你应该初始化'NSError *误差=零! :-)然后它不会再崩溃了。 –

+2

直接从WWDC对话:错误值是* undefined *,除非该方法返回false。如果方法返回false,您应该只检查/信任/使用错误值。 –

+0

@KennyWinker你成功检查了这个错误吗?当磁盘空间不足时,错误包含什么信息? – onmyway133

1
+0

感谢您的回复。我很早就看到了这些链接,但是我的问题是在将UIImage写入磁盘之前,我需要获得它的大小,并且需要将它与可用磁盘空间进行比较。如何在写入磁盘之前获取UIImage的大小。或者在溢出的情况下,我可以在@try {} @ catch(NSException * e){NSatch(@“catching%@ reason%@”,[e name],[e reason])中捕获任何类型的异常。 } @finally { } – Matt

+0

@ user970349这是一种糟糕的做事方式。可可的例外仅限于真正的特殊情况(即可靠性)。如果你用'NSData * imageData = [myImage UIImageJPEGRepresentation];'(或'UIImagePNGRepresentation'),然后是'NSError * BOOL成功= [imageData writeToFile:(NSString *)path options:(NSDataWritingOptions)mask error:&error];'你的BOOL失败会告诉你它是否工作,并且错误将包含一个NSError对象并描述错误(don' t测试'错误!= nil'虽然,偶尔会崩溃)。 –

+0

感谢您的回复。我是iPhone新手,正在寻找这样一个详细的答案。 – Matt