
要在运行时访问此值,我们可以使用FrameworkVersionNumber和FrameworkVersionString []变量,这些变量是我们在构建过程中自动生成的.
使用Swift项目时,可以在Objective-C兼容性标头的顶部自动生成这些项目:
//! Project version number for Framework.FOUNDATION_EXPORT double FrameworkVersionNumber;//! Project version string for Framework.FOUNDATION_EXPORT const unsigned char FrameworkVersionString[];
但是,虽然可以从Swift访问FrameworkVersionNumber,但FrameworkVersionString []却不是.实际上看一下框架模块的内容,我可以看到只有第一个变量暴露给Swift:
//! Project version number for Framework.var FrameworkVersionNumber: Double
这个问题是,由于FrameworkVersionNumber是Double,任何版本号如3.2.1只需更改为3.200000 ……
有谁知道这是否是我的项目设置中的缺陷,Xcode中的一个错误,或者是否有一种方法可以将Swift中的框架版本作为String或数组获取,这样我可以提供比major.minor更精细的版本控制?
解决方法 我实际上找到了这个问题的潜在解决方法,它不是那么干净但它确实有效:默认情况下,当Xcode创建框架时,它将Version设置为1.0,Build设置为$(CURRENT_PROJECT_VERSION),这很好,因为这个值实际上是从Build Settings>中的Current Project Version字段复制的.版本.
那么在运行时获取此值的方法如下:
let bundle = NSBundle(IDentifIEr: "com.yourframework.Framework")! // Get a reference to the bundle from your framework (not the bundle of the app itself!)let build = bundle.infoDictionary![kcfBundLeversionKey] as! String // Get the build from the framework's bundle as a String
这确实有效,但对于过去(我相信)可以从Objective-C中的变量轻松访问的东西感觉非常迂回.
总结以上是内存溢出为你收集整理的ios – 在Swift中获取Cocoa Touch Framework项目版本字符串全部内容,希望文章能够帮你解决ios – 在Swift中获取Cocoa Touch Framework项目版本字符串所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)