Nelze načíst xib z rámce

0

Otázka

Nemůžu načíst nib souboru, v rámci které jsem vytvořil. Věc je, že jsem pracoval na něm více než měsíc, a to bylo v pořádku. Otevřel jsem to dnes zase po 2 týdnech a to jen shazovat. Nemohl jsem tomu uvěřit.

Vytvořil jsem malý ukázkový projekt , kde jsem schopni reprodukovat problém.

Získat Balíček jsem pomocí

let bundle = Bundle(identifier: "com.nibFramework.NibFramework")

To se vrací nil btw.

Tak jsem to zkusil

let bundle = Bundle(for: MyNib.self)

Pomocí nib

let nib = UINib(nibName: "\(MyNib.self)", bundle: bundle)
let array = nib.instantiate(withOwner: self, options: nil)

A to se zřítilo na instantiate.

Error
2021-11-23 23:55:52.381944+0530 NibApp[7432:2147418] *** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'Could not load NIB in bundle: 'NSBundle </private/var/containers/Bundle/Application/7817FD25-54BC-4920-AC67-49D246D28794/NibApp.app> (loaded)' with name 'MyNib''
*** First throw call stack:
(0x1827f904c 0x19ae6df54 0x182850180 0x18513f338 0x1040b0d9c 0x1040af164 0x1040af1c0 0x184db415c 0x184db6c10 0x184d896a4 0x184ecc4d8 0x184e21da0 0x184eb8f84 0x184ed3598 0x184c594a0 0x184f5f584 0x185260400 0x184f61c80 0x184ea10b4 0x1942f0e20 0x194316cdc 0x1942d16b4 0x1942d2cf4 0x10441e3b4 0x104421e70 0x1942d2f94 0x1942d23d4 0x1942d69e4 0x18281b020 0x18282bce0 0x182766054 0x18276b7f4 0x18277f3b8 0x19e10f38c 0x18511f6a8 0x184e9e7f4 0x199e98184 0x1040afcb8 0x1040afc40 0x1040afd38 0x104325a24)
libc++abi: terminating with uncaught exception of type NSException
dyld4 config: DYLD_LIBRARY_PATH=/usr/lib/system/introspection DYLD_INSERT_LIBRARIES=/Developer/usr/lib/libBacktraceRecording.dylib:/Developer/usr/lib/libMainThreadChecker.dylib:/Developer/Library/PrivateFrameworks/DTDDISupport.framework/libViewDebuggerSupport.dylib
*** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'Could not load NIB in bundle: 'NSBundle </private/var/containers/Bundle/Application/7817FD25-54BC-4920-AC67-49D246D28794/NibApp.app> (loaded)' with name 'MyNib''
terminating with uncaught exception of type NSException

Jsem pomocí Xcode 13.1. Mach-O Typ tohoto rámce je nastaven na Static Library.

Docela jistá, že mi chybí některé jednoduchá věc. Jen nemůžu přijít na to co. Díky za vaši pomoc.

ios objective-c swift xcframework
2021-11-23 18:50:51
1
0

Jakýkoli Rámec Svazek vytvořen s Xcodes Šablona bude mít strukturu, na které se můžete spolehnout při pohledu na obsah, balené v něm.

Nib/Xib soubory jsou Zdroje, tak se sestavování jsou zkopírovány do podsložky podle vytvořeného Svazku (Rámec v tomto případě). Takže byste měli být schopni vytvořit potřebné Zdroje Složku ručně.

NSString *privateFWPath = [[NSBundle mainBundle] privateFrameworksPath];
NSString *nibPath = [privateFWPath stringByAppendingString:@"/NibFramework.framework/Versions/A/Resources/MyNib"];

další způsob, jak je požádat třídy, pro jeho svazek a vytvořit rámce složku Prostředky k dosažení nib.

[NSBundle bundleForClass:MyNib.class];

PS: hádám, že MyNib.self není třída, je to objekt. Způsob, jak zkontrolovat, zda je nib/xib skončil v rámci je vylézt přes strukturu složek s desktopy Finder.app. Vaše Aplikace bude mít Rámců složky, tam NibFramework.rámec a v tomto nějaký odkaz na Zdroje hlouběji do struktury nebo přímo Verzí složku, podsložky A v které Zdroje složku by měl být nalezen a nib bude bydlet. K tomu budete sestavovat první, samozřejmě, a pak vyberte Produkt v Xcode projektu, klikněte pravým tlačítkem myši > zobrazit ve Finderu, a pak klikněte pravým tlačítkem myši > Zobrazit Obsah.

Tip: Žádá Svazek pro obsah má vedlejší účinek, kdy vstup dané výsledky v (nil) or (null), obvykle se vrátí mainBundle.

Upozornění: hrot/xib/storyboard soubory nejsou umístěny v kořenové složce svazku.

2021-11-24 17:04:02

V jiných jazycích

Tato stránka je v jiných jazycích

Русский
..................................................................................................................
Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
हिन्दी
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................