2009-06-29 9 views
13

Ho effettuato il refactoring di alcune sottoclassi di UIView in una libreria statica. Tuttavia, quando si utilizza Interface Builder per creare componenti di visualizzazione per un progetto che utilizza la libreria statica, scopro che non è a conoscenza delle classi della libreria. Cosa devo fare per rendere visibili le interfacce di classe a Interface Builder?Interface Builder non può vedere le classi in una libreria statica

Aggiornamento: La risposta corretta si riferisce al trascinamento delle intestazioni nel "browser XIB". I file '.h' possono essere trascinati da una finestra del Finder per l'area della finestra individuata in questa immagine:

alt text http://img211.imageshack.us/img211/1221/xibbrowser.png

+0

buona domanda, buona soluzione - grazie Teabot e Reed Olsen! – Till

risposta

8

provare a trascinare la libreria statica nel browser XI ter in Interface Builder. Non ho provato questo con una libreria statica, ma il concetto è lo stesso. Quando trascini i file di intestazione in IB, puoi accedere a tali classi.

+0

Il trascinamento diretto dei file di intestazione nel browser XIBs/explorer ha funzionato, trascinando la libreria statica no. – teabot

4

LexH, prova a collegare con il flag -ObjC quando crei la tua libreria statica. Ha funzionato per me ... per circa un anno :-) Ho trovato questo post come il problema è tornato con una nuova installazione OSX e un aggiornamento in xcode. Ma ha funzionato in XCode 3.1.2.

  • David
+0

Questo ha funzionato per me. – RajV

1

Aggiungere lo stesso problema di LexH. Ha funzionato solo quando ho chiamato un metodo di classe fittizio. Il problema era che non ho aggiunto la mia libreria statica al "link binary with libraries" sotto target. Stranamente tutto il resto ha funzionato.

ho seguito questa guida per creare un collegamento con la mia lib statica Create static lib

1

Ho avuto lo stesso problema. Il trascinamento della libreria o delle intestazioni su XIB Browser non ha funzionato. Leggere i file di classe non ha funzionato. Così ho chiamato:

[MyLibraryClass version]; // Substitute your class name for "MyLibraryClass". 

Questo ha funzionato. version è un metodo di classe di NSObject, quindi tutte le sottoclassi di NSObject lo ereditano.

Problemi correlati