iOS Bundle的简单使用

class ViewController1: UIViewController {

    @IBOutlet weak var imageView: UIImageView!
    override func viewDidLoad() {
        super.viewDidLoad()

        //获得整个App的Bundle对象
        let mainBundle = Bundle.main

        //通过Bundle对象获得这个App的bundle标识: com.linyufeng.segueTest
        print(mainBundle.bundleIdentifier ?? "无法显示bundleIdentifier")

        //通过Bundle对象获得这个App的相对路径: /Users/linyufeng/Library/Developer/CoreSimulator/Devices/114FBDEE-A305-46FD-B324-A5C88845BB5D/data/Containers/Bundle/Application/3F857297-396F-4975-B73A-0DE463EA89AB/segueTest.app
        print(mainBundle.bundlePath)

        //通过Bundle对象获得这个App的绝对路径: file:///Users/linyufeng/Library/Developer/CoreSimulator/Devices/114FBDEE-A305-46FD-B324-A5C88845BB5D/data/Containers/Bundle/Application/3F857297-396F-4975-B73A-0DE463EA89AB/segueTest.app/
        print(mainBundle.bundleURL)

        //通过Bundle对象获得这个App的本地化信息(我在Info.plist设置的是China): zh_CN
        print(mainBundle.developmentLocalization ?? "无法显示developmentLocalization")

        //通过Bundle对象获得这个App的可执行文件的相对地址: /Users/linyufeng/Library/Developer/CoreSimulator/Devices/114FBDEE-A305-46FD-B324-A5C88845BB5D/data/Containers/Bundle/Application/3F857297-396F-4975-B73A-0DE463EA89AB/segueTest.app/segueTest
        print(mainBundle.executablePath ?? "无法显示executablePath")

        //通过Bundle对象获得Info.plist文件的消息(Info.plist是字典形式存储的,虽然我们在设置Info.plist时是将 Bundle Display Name 设为 网易云,但真正的键名是:CFBundleDisplayName),这里控制台的输出是:网易云
        print(mainBundle.infoDictionary!["CFBundleDisplayName"] ?? "无法显示Info.plist文件信息")

        //Bundle初始化
        //这里的输出是true,说明使用Bundle.main和使用Bundle的其他初始化函数都能获得Bundle对象,从而获得获得资源的接口
        let bundle1 = Bundle(for: type(of:self))
        let bundle2 = Bundle(identifier: "com.linyufeng.segueTest")
        let bundle3 = Bundle(path: mainBundle.bundlePath)
        let bundle4 = Bundle(url: mainBundle.bundleURL)
        print(mainBundle ==  bundle1 && mainBundle ==  bundle2 && mainBundle ==  bundle3 && mainBundle ==  bundle4)

    }
时间: 2024-10-23 08:11:03

iOS Bundle的简单使用的相关文章

ios状态栏调整 简单动画的知识点

首先状态栏式view的属性,所以在viewController中直接重写: /** 修改状态栏 */ - (UIStatusBarStyle)preferredStatusBarStyle { // 修改状态栏的颜色(白色) return UIStatusBarStyleLightContent; } // 这种返回值没有*的说明不是对象,那么不是枚举就是结构体,大多数情况是枚举,所以取值也比较简单,一般是返回值后边加上状态: 在UIKit学习中常用的块动画: // 块动画 animateWit

iOS设计模式 - (3)简单工厂模式

iOS设计模式 - (3)简单工厂模式           by Colin丶 转载请注明出处:              http://blog.csdn.net/hitwhylz/article/details/40381721 一.简述 简单工厂模式(FACTORY),通过面向对象的封装,继承和多态来降低程序的耦合度.将一个具体类的实例化交给一个静态工厂方法来执行. 该模式中的角色包括: 工厂类(Simple Factory): 只包含了创建具体类的静态方法. 抽象产品(Product):

Android Bundle传递简单数据、对象数据

Android开发过程中进程遇到组件之间.进程之间等数据的传递,数据传递有很多种,其中使用Bundle传递非常方便. Bundle可以传递多种数据,是一种类似map的key-value数据结构 简单的调用如下所示 Bundle bundle=new Bundle(); bundle.put***(key,value) 但是有时候需要我们传递一个对象,做法就是先把该对象使用serializable序列化 public class Book implements Serializable{ } 然后

iOS progressview的简单使用

head 代码.. Java代码   #import <UIKit/UIKit.h> @interface ViewController : UIViewController { UIProgressView *progressview; UIProgressView *progressviewbar; NSTimer *timer; } @property(retain,nonatomic) IBOutlet UIProgressView *progressview; @property(r

iOS Bundle display name国际化

iOS app包显示名称可以国际化,具体方法如下: 编辑Info.plist,添加一个新的属性:Application has localized display name,设置该属性的类型为boolean,并设置value为YES: 在PROJECT的info标签中,在Localizations中添加需要的本地化资源文件: 在项目文件浏览窗口中,找到InfoPlist.strings,设置显示名字:CFBundleDisplayName = "XXX"; iOS Bundle dis

ios下最简单的正则,RegexKitLite

ios下最简单的正则,RegexKitLite 1.去RegexKitLite下载类库,解压出来会有一个例子包及2个文件,其实用到的就这2个文件,添加到工程中.备用地址:http://www.cocoachina.com/bbs/job.php?action-download-pid-135286-tid-18111-aid-11143.html- Lv 2.工程中添加libicucore.dylib frameworks. 3.现在所有的nsstring对象就可以调用RegexKitLite中

IOS开发之简单音频播放器

今天第一次接触IOS开发的UI部分,之前学OC的时候一直在模拟的使用Target-Action回调模式,今天算是真正的用了一次.为了熟悉一下基本控件的使用方法,和UI部分的回调,下面开发了一个特别简易的音频播放器,来犒劳一下自己这一天的UI学习成果.在用到UI的控件时如果很好的理解之前博客在OC中的Target-Action回调模式,感觉控件的用法会很顺手.下面的简易播放器没有用到多高深的技术,只是一些基本控件和View的使用. 话不多说简单的介绍一下今天的音频播放器.在播放器中我们用到了UIP

iOS沙盒简单介绍

先简单介绍一下什么是沙盒:你可以简单理解成为一个目录,这个目录的改动不会对操作系统造成任何损失.(这里也有一点点介绍) 看看苹果的沙盒目录: 再附一张苹果官方的图 一个iOS app操作都是在自己的沙盒中进行的. 首先: Deveices,里面是各种的模拟器设备. 然后随便找一个模拟器设备.里面的data是里面的数据.然后Container里面Data中有一个Application就是该设备的安装软件. 我们可以看到里面有好多个(就算我们Reset Content and Settings,也会

iOS百度地图简单使用

本文介绍三种接口: 1.基础地图2.POI检索3.定位 首先是配置环境,有两种方法,方法在官方教程里都有,不再多说 1.使用CocoaPods自动配置[这个方法特别好,因为当你使用CocoaPods配置完之后就可以直接使用了,简单到你都不敢相信,我他妈用手动配置,每次都有各种问题,解决起来烦死人,使用CocoaPods配置,可能会报一个错(linker command failed with exit code 1 (use -v to see invocation)),但是,很好解决,只需要找