2009-02-03 5 views

Odpowiedz

16

Znalazłem NSStringFrom *() pomocny przy logowaniu konstrukcjom jak CGRect, CGPoint itp

można znaleźć kompleksowy przegląd w Apple Foundation Functions Reference linku (Wayback Machine).

+0

Oh man ... ja odtworzył kilka z nich. Dobra odpowiedź na dobre pytanie! – Felixyz

+0

Link nie jest już ważny i nie jest jasne, który link aktualnie zbiera tę zawartość. – mah

4

Jest to taki, który chciałbym wiedzieć około 6 miesięcy temu. Stworzyłem naszą pierwszą aplikację na iPhone'a i chciałem stworzyć prosty plik pomocy oparty na HTML przy użyciu kontrolera UIWebView.

Jednak nie mogłem wymyślić, jak osadzić lokalne obrazy, które miałem przechowywane w pakiecie i nie chciałem, aby użytkownik musiał mieć dostęp do Internetu, aby pobrać obrazy z serwera.

Trochę nie wiem, mogę wykonać następujące czynności, aby uzyskać obrazy z Głównego Bundle

NSString *bundlePath = [[NSBundle mainBundle] bundlePath]; 
NSURL *bundleBaseURL = [NSURL fileURLWithPath: bundlePath]; 

[webView loadHTMLString:htmlContent baseURL: bundleBaseURL]; 

obrazem w formacie HTML można następnie wywołać lokalne obrazy bezpośrednio.

<img src="yourImageFromTheMainBundle.jpg" /> 

Nie miałem pojęcia, czy mogę ustawić bazęURL z lokalizacją pakietu.

3

Znaczna część rzeczy w NSPathUtilities.h. Wiedziałem o tym dwa lata temu, ale kiedy go znalazłem, żałowałem, że nie widziałem go dwa lata wcześniej. :-)

W pewnym momencie zmarnowałem sporo czasu, ponieważ nie wiedziałem o NSCountedSet i zrobiłem bałagan na moim słownikowym zamienniku. Znam kilka przypadków, w których ludzie robili to samo, ponieważ w ogóle nie wiedzieli o NSSet. Inną dobrą "ukrytą" kolekcją jest CFBinaryHeap, która implementuje kolejkę priorytetową, ale nie ma odpowiednika NS.

+0

+1 dla CFBinaryHeap –

3

Jeden Pamiętam

+ (NSBezierPath *)bezierPathWithRoundedRect:(NSRect)rect xRadius:(CGFloat)xRadius yRadius:(CGFloat)yRadius 

Zgoda na zastanawianie się, jak narysować zaokrąglony prostokąt ręcznie jest bardzo dobrym ćwiczeniem. Są jeszcze inne, do których jestem przyzwyczajony.

-1

To jest skrót zamiast wywołania biblioteki, które przegapiłem, ale jest w duchu wątku.

Jednym z skrótów, których używam dużo, jest użycie instrukcji wbudowanej w wywołaniach NSLog.


NSLog(@"x=%@", [someobject className]); 

zamiast bardziej opisowym


NSLog([NSString stringWithFormat:@"x=%@", [someobject classname]]); 
+10

To nie jest skrót; to jedyny poprawny sposób na zrobienie tego. Jeśli wynik stringWithFormat: (lub jakikolwiek ciąg znaków, który przekazujesz do NSLog) kończy się na powiedzeniu "% @", wtedy NSLog spróbuje wstawić tam obiekt - ale go nie zdałeś. Więc zajmuje wskaźnik śmieci, wysyła wiadomość i bum. –

+0

Nie zasługuje jednak na minus. :-) – evdude100

3

Tworzenie koloru z obrazu wzorca z

[UIColor colorWithPatternImage:[UIImage imageNamed:@"mypattern.png"]]; 
+0

To byłaby fajna sztuczka, ponieważ publiczny iPhone SDK nie ma jeszcze lat. Jednak odpowiednik kakao z NSColor i NSImage zawsze był obecny. Dzięki. – Mark

5

funkcji pomocnika zwrócić trzyczęściowa obrazy z lewej pokrywie, wypełnić i prawo cap.Idealny dla niestandardowych przycisków

void NSDrawThreePartImage(NSRect frame, 
    NSImage *startCap, 
    NSImage *centerFill, 
    NSImage *endCap, 
    BOOL vertical, 
    NSCompositingOperation op, 
    CGFloat alphaFraction, 
    BOOL flipped 
); 

Również szukać NSDrawNinePartImage

Powiązane problemy