小弟最近遇到一个问题,如何用swift获取苹果手机剩余可用的内存大小,在网上并没有找到swift的例子,求各位大神指点一下!
跟oc的差不多,稍微改改就是。
oc 的
http://aasheaa.blog.163.com/blog/static/99333120126311332613/
我后来解决了这个问题,明天我把具体代码贴出来!
首先分享第一个方案:
一: 调用OC的方法
1.http://blog.csdn.net/lwjok2007/article/details/48089241
这个链接下详细解决了swift如何调用OC的问题。
swiftTogetherWithOC-Bridging-Header.h (桥接文件中)
//
// Use this file to import your target's public headers that you would like to expose to Swift.
//
#import "OS.h"
oc的头文件 OS.h 中代码如下
//
// OS.h
// swiftTogetherWithOC
//
// Created by winner on 16/3/29.
// Copyright © 2016年 winner. All rights reserved.
//
#import
@interface OS : NSObject
-(void)TestOCStr;
@end
#import
oc的 .m 文件中 代码如下:
//
// OS.m
// swiftTogetherWithOC
//
// Created by winner on 16/3/29.
// Copyright © 2016年 winner. All rights reserved.
//
#import "OS.h"
@implementation OS
-(void)TestOCStr
{
NSLog(@"这个是OC方法");
NSDictionary *systemAttributes = [[NSFileManager defaultManager]fileSystemAttributesAtPath:NSHomeDirectory()];
NSString *diskTotalSize = [systemAttributes objectForKey:@"NSFileSystemSize"];
NSLog(@"磁盘大小:%@ B", diskTotalSize);
NSLog(@"磁盘大小:%.2f GB", [diskTotalSize floatValue]/1024/1024/1024);
NSString *diskFreeSize = [systemAttributes objectForKey:@"NSFileSystemFreeSize"];
NSLog(@"可用空间:%@ B", diskFreeSize);
NSLog(@"可用空间:%.2f GB", [diskFreeSize floatValue]/1024/1024/1024);
// NSLog(systemAttributes);
}
@end
swift 文件中 代码如下:
//
// ViewController.swift
// swiftTogetherWithOC
//
// Created by winner on 16/3/29.
// Copyright © 2016年 winner. All rights reserved.
//
import UIKit
class ViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
var os = OS()
os.TestOCStr()
// Do any additional setup after loading the view, typically from a nib.
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
}
最后,运行结果如下:
2016-03-30 09:41:59.249 swiftTogetherWithOC[987:152037] 这个是OC方法
2016-03-30 09:41:59.249 swiftTogetherWithOC[987:152037] 磁盘大小:999345127424 B
2016-03-30 09:41:59.250 swiftTogetherWithOC[987:152037] 磁盘大小:930.71 GB
2016-03-30 09:41:59.250 swiftTogetherWithOC[987:152037] 可用空间:883457773568 B
2016-03-30 09:41:59.250 swiftTogetherWithOC[987:152037] 可用空间:822.78 GB
二:分享第二个方案,就是和一楼层主说的一样了,看到这样的代码,突然有点熟悉,后来改一改,直接就成 swift 直接版 的了,以下是我写的 swift的代码:
override func viewDidLoad() {
super.viewDidLoad()
let manager = NSFileManager.defaultManager()
do
{
//沙盒根路径
let home = NSHomeDirectory() as NSString
let attribute = try manager.attributesOfFileSystemForPath(home as String)
freesize = attribute[NSFileSystemFreeSize]!as! Float
print("here is freesize : \(freesize)")
freeSize.text = String(format: "%.1f",freesize/1024/1024/1024) + "GB"
}catch{}
time.text = String(format: "%.0f",freesize/1024/1024/36) + " min"
let defaults = NSUserDefaults.standardUserDefaults()
userName.text = "业务员姓名:" + defaults.stringForKey("userName")!
}
运行结果:
here is freesize : 8.83465e+11
最后成功在手机端显示了手机的剩余内存,不过,由于自己的电脑原因,并不能上传图片,请谅解。