菜鸟教程小白 发表于 2022-12-13 09:38:19

ios - 在 iOS 项目中使用包时出错/如何创建正确的包?


                                            <p><p>我正在尝试在 iOS 项目中包含一个静态库。我导入了整个静态库项目,然后将库链接到“目标依赖项”和“将二进制文件与库链接”中,如下所述:<a href="http://www.applausible.com/blog/?p=657" rel="noreferrer noopener nofollow">http://www.applausible.com/blog/?p=657</a> </p>

<p>但是我在测试应用程序时遇到了这个错误:</p>

<pre><code>Terminating app due to uncaught exception &#39;NSInternalInconsistencyException&#39;, reason: &#39;Could not load NIB in bundle: &#39;NSBundle &lt;/Users/alexis/Library/Application Support/iPhone Simulator/5.0/Applications/9811107D-0D7E-4178-ACCE-BF43E3043770/PlazappPartnerTest.app&gt; (loaded)&#39; with name &#39;LauncherView&#39;&#39;
*** First throw call stack:
(0x188a052 ......
</code></pre>

<p>我猜它无法访问 .xib 文件,但由于它包含在我的库中,我不知道为什么。
如何让主项目“看到”.xib 文件? (如果这确实是问题......)</p>

<p>编辑:</p>

<p>我尝试制作一个包含 .xib 文件的包,并将其包含在我的主项目中,但我无法使用此包。我试过这个:</p>

<pre><code>NSString *bundlePath = [ pathForResource:@&#34;BundleName&#34; ofType:@&#34;bundle&#34;];
NSBundle *bundle = ;

NSError *error;
;

NSLog(@&#34;bundle error : %@&#34;, );
</code></pre>

<p>我得到了这个错误:</p>

<pre><code>NSLocalizedDescription = &#34;The bundle \U201cBundleName.bundle\U201d couldn\U2019t be loaded because its executable couldn\U2019t be located.&#34;;
NSLocalizedFailureReason = &#34;The bundle\U2019s executable couldn\U2019t be located.&#34;;
NSLocalizedRecoverySuggestion = &#34;Try reinstalling the bundle.&#34;;
</code></pre>

<p>有什么问题? </p>

<p>我认为我无法加载包含非可执行资源(如 .xib 文件)的包。我说的对吗?</p>

<p>但是,如何从包中加载我的 .xib?</p></p>
                                    <br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
                                            <p><p>在 Cocoa 编程中,获取 bundle 的方法通常不止一种。我已经成功了:</p>

<pre><code>NSBundle *libBundle = URLForResource:@&#34;BundleName&#34; withExtension:@&#34;bundle&#34;]];
</code></pre>

<p>然后用这个加载 Nib :</p>

<pre><code>MyViewController *myViewController = [ initWithNibName:@&#34;MyViewController&#34; bundle:libBundle];
</code></pre>

<p>您对 <code>loadAndReturnError:</code> 的特定调用会加载 bundle 的可执行代码。由于这个包可能没有任何可执行代码,只是库需要的资源集合,它会给你这个错误。</p>

<p><strong>编辑</strong>(回复评论):</p>

<p>我通过在我的库项目中添加一个新目标来制作我的包。从 Mac OS X 包模板开始,我将所有图像、.xib 和其他资源添加到“复制包资源”构建阶段。我将基本 SDK 更改为 iOS(最新)。然后我将包添加到库的依赖项和最终应用的“复制包资源”构建阶段。</p>

<p>如果你只是尝试将 .xib 文件添加到文件夹的方法,.xib 不会编译成 nib,iOS 无法读取它们。 </p></p>
                                   
                                                <p style="font-size: 20px;">关于ios - 在 iOS 项目中使用包时出错/如何创建正确的包?,我们在Stack Overflow上找到一个类似的问题:
                                                        <a href="https://stackoverflow.com/questions/7977784/" rel="noreferrer noopener nofollow" style="color: red;">
                                                                https://stackoverflow.com/questions/7977784/
                                                        </a>
                                                </p>
                                       
页: [1]
查看完整版本: ios - 在 iOS 项目中使用包时出错/如何创建正确的包?