小编kaz*_*chi的帖子

ibtool 在编译和链接故事板阶段做什么以及链接的故事板的结果如何与可执行文件一起工作?

我一直在研究 iOS 应用程序的构建过程。我创建了一个“单视图应用程序”项目并在 Xcode 8.2.1 中构建。当我查看构建报告时,我注意到 Xcode 使用 clang 编译和链接 .m 文件,然后使用 ibtool 编译和链接故事板文件。我想知道 ibtool 在编译和链接过程中实际做了什么。在执行以下编译命令后,会在/Users/Kazu/Library/Developer/Xcode/DerivedData/ObjCHelloWorld-guewhpmwckompbfvsbhizkifcadg/Build/Intermediates/ObjCHelloWorld.build/Debug-iphonesimulator/ObjCHelloWorld.build/Base.lproj/目录中创建 .storyboardc 文件,该文件将在稍后的“链接 Storyboards”阶段使用。.storyboardc文件是一组二进制文件,包括 Info.plist 文件。

 ObjCHelloWorld/Base.lproj/LaunchScreen.storyboard
cd /Users/Kazu/Dropbox/ObjCHelloWorld
export PATH="/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/usr/bin:/Applications/Xcode.app/Contents/Developer/usr/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin"
export XCODE_DEVELOPER_USR_PATH=/Applications/Xcode.app/Contents/Developer/usr/bin/..
/Applications/Xcode.app/Contents/Developer/usr/bin/ibtool --errors --warnings --notices --module ObjCHelloWorld --output-partial-info-plist /Users/Kazu/Library/Developer/Xcode/DerivedData/ObjCHelloWorld-guewhpmwckompbfvsbhizkifcadg/Build/Intermediates/ObjCHelloWorld.build/Debug-iphonesimulator/ObjCHelloWorld.build/LaunchScreen-SBPartialInfo.plist --auto-activate-custom-fonts --target-device iphone --target-device ipad --minimum-deployment-target 10.2 --output-format human-readable-text --compilation-directory /Users/Kazu/Library/Developer/Xcode/DerivedData/ObjCHelloWorld-guewhpmwckompbfvsbhizkifcadg/Build/Intermediates/ObjCHelloWorld.build/Debug-iphonesimulator/ObjCHelloWorld.build/Base.lproj /Users/Kazu/Dropbox/ObjCHelloWorld/ObjCHelloWorld/Base.lproj/LaunchScreen.storyboard
Run Code Online (Sandbox Code Playgroud)

在链接阶段,执行以下命令,我不知道 ibtool 在做什么。我所能告诉的是它使用storyboardc在编译阶段生成的文件。

LinkStoryboards
cd /Users/Kazu/Dropbox/ObjCHelloWorld
export PATH="/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/usr/bin:/Applications/Xcode.app/Contents/Developer/usr/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin"
export XCODE_DEVELOPER_USR_PATH=/Applications/Xcode.app/Contents/Developer/usr/bin/..
/Applications/Xcode.app/Contents/Developer/usr/bin/ibtool --errors --warnings --notices --module ObjCHelloWorld --target-device iphone --target-device ipad --minimum-deployment-target 10.2 --output-format human-readable-text --link /Users/Kazu/Library/Developer/Xcode/DerivedData/ObjCHelloWorld-guewhpmwckompbfvsbhizkifcadg/Build/Products/Debug-iphonesimulator/ObjCHelloWorld.app …
Run Code Online (Sandbox Code Playgroud)

xcode xcodebuild storyboard ios ibtool

5
推荐指数
1
解决办法
2013
查看次数

多次读取plist与创建对象并仅读取plist一次以访问plist中的数据

我想创建一个从plist中检索数据的数据管理器类,我想知道是否应该使用所有类方法创建一个类,每次调用方法并返回请求的值时读取plist,或者创建一个初始化的类初始化器带有plist数据的数组(实例变量)和所有方法都是从数组中获取数据的实例方法.

我想知道哪个更贵:阅读plist多次(如50次)或实例化一个对象,或者简单哪个更好.

提前谢谢你的帮助.

iphone cocoa cocoa-touch objective-c ios

4
推荐指数
1
解决办法
851
查看次数

标签 统计

ios ×2

cocoa ×1

cocoa-touch ×1

ibtool ×1

iphone ×1

objective-c ×1

storyboard ×1

xcode ×1

xcodebuild ×1