swift开发ios笔记1--加载plist文件
2015-06-03 17:56 阅读(172)

今天主要学习如何通过swift加载plist文件:

let path = NSBundle.mainBundle().pathForResource("pic", ofType: "plist")!;
var picArray = NSArray(contentsOfFile:path);

第一句:获得名称为"pic.plist"的文件的路径path

第二句:通过路径path创建数组,并且将文件内容加载到数组中。当然也可以是加载到字典中,NSDictionary(contentsOfFile:path);


下面以一个图片浏览器的实例说明:

效果:

屏幕快照 2015-06-03 17.53.35.png

pic.plist文件:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<array>
	<dict>
		<key>icon</key>
		<string>image01</string>
		<key>title</key>
		<string>这是图片01</string>
	</dict>
	<dict>
		<key>icon</key>
		<string>image02</string>
		<key>title</key>
		<string>这是图片02</string>
	</dict>
	<dict>
		<key>icon</key>
		<string>image03</string>
		<key>title</key>
		<string>这是图片03</string>
	</dict>
	<dict>
		<key>icon</key>
		<string>image04</string>
		<key>title</key>
		<string>这是图片04</string>
	</dict>
	<dict>
		<key>icon</key>
		<string>image05</string>
		<key>title</key>
		<string>这是图片05</string>
	</dict>
	<dict>
		<key>icon</key>
		<string>image06</string>
		<key>title</key>
		<string>这是图片06</string>
	</dict>
</array>
</plist>

swift控制器代码:

import UIKit

class ViewController: UIViewController {

    @IBOutlet weak var picIv: UIImageView!;
    @IBOutlet weak var pageNumLbl: UILabel!;
    @IBOutlet weak var titleLbl: UILabel!
    
    @IBOutlet weak var lastBtn: UIButton!;
    @IBOutlet weak var nextBtn: UIButton!;
    
    var picArray:NSArray?;
    var index = 0;
    
    //上一张
    @IBAction func last() {
        index--;
        if(index < 0){
           index = 0;
        }
        showThePic(index);
        
    }
    
    //下一张
    @IBAction func next() {
        index++;
        if(index >= picArray!.count){
            index = picArray!.count - 1;
        }
        showThePic(index);
        
    }
    //显示某张
    func showThePic(i:Int){
        var dic = picArray![i] as! (Dictionary<String, String>);
        pageNumLbl.text = "\(i+1)/\(picArray!.count)";
        picIv.image = UIImage(named:dic["icon"]!);
        titleLbl.text = dic["title"]!;
        lastBtn.enabled = index != 0;
        nextBtn.enabled = index != picArray!.count - 1;
    }
    //将plist文件加载到数组中
    func loadPics(){
        let path = NSBundle.mainBundle().pathForResource("pic", ofType: "plist")!;
        picArray = NSArray(contentsOfFile:path);
    }
    override func viewDidLoad() {
        super.viewDidLoad()
        loadPics();
        showThePic(0);
    }

    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
        // Dispose of any resources that can be recreated.
    }


}