objective-c - plataforma - versiones de objective c
¿Qué funciones de la ayuda de Cocoa/Core Foundation desearía saber hace aproximadamente 2 años? (7)
Acabo de descubrir las funciones auxiliares de NSRect en NSGeometry.h (es decir, NSMidX, NSMaxX, etc.)
Esto hubiera hecho que algunos códigos repetitivos fueran mucho más fáciles. Sabía acerca de NSMakeRect, NSMouseInRect, NSOffsetRect y muchos otros, pero de alguna manera me perdí las funciones que ayudan a recalcular la geometría de NSRect.
Este es uno que desearía haber sabido hace 6 meses. Estaba creando nuestra primera aplicación de iPhone y quería crear un archivo de ayuda simple basado en HTML utilizando el UIWebView Controller.
Sin embargo, no pude encontrar la forma de insertar las imágenes locales que había almacenado en el paquete y no quería que el usuario tuviera acceso a Internet para buscar las imágenes de un servidor.
Poco sabía que podía hacer lo siguiente para obtener imágenes del Main Bundle
NSString *bundlePath = [[NSBundle mainBundle] bundlePath];
NSURL *bundleBaseURL = [NSURL fileURLWithPath: bundlePath];
[webView loadHTMLString:htmlContent baseURL: bundleBaseURL];
La imagen en su HTML puede llamar a las imágenes locales directamente.
<img src="yourImageFromTheMainBundle.jpg" />
No tenía idea de que podía configurar el URL base con la ubicación del paquete.
Gran parte de las cosas en NSPathUtilities.h. Lo sabía hace dos años, pero cuando lo encontré deseé haberlo visto dos años antes. :-)
En algún momento perdí bastante tiempo porque no sabía nada de NSCountedSet y me hice un desastre con mi reemplazo basado en el diccionario. Sé de varios casos en que las personas han hecho el mismo tipo de cosas porque no sabían nada sobre NSSet. Otra buena colección "oculta" es CFBinaryHeap, que implementa una cola de prioridad, pero no tiene un equivalente NS.
He encontrado NSStringFrom * () útil al registrar estructuras como CGRect, CGPoint, etc.
Puede encontrar una descripción completa en la Referencia de funciones de la base de Apple.
Uno que recuerdo
+ (NSBezierPath *)bezierPathWithRoundedRect:(NSRect)rect xRadius:(CGFloat)xRadius yRadius:(CGFloat)yRadius
De acuerdo, averiguar cómo dibujar un rectángulo redondeado manualmente es un ejercicio bastante bueno. Hay otros a los que estoy acostumbrado ahora.
Crear un color a partir de una imagen de patrón con
[UIColor colorWithPatternImage:[UIImage imageNamed:@"mypattern.png"]];
Este es un atajo en lugar de una llamada a la biblioteca que me perdí, pero está en el espíritu del hilo.
Un atajo que uso mucho está usando una declaración de formato en línea en llamadas NSLog.
NSLog(@"x=%@", [someobject className]);
en lugar de la más detallada
NSLog([NSString stringWithFormat:@"x=%@", [someobject classname]]);
Función auxiliar para dibujar tres imágenes de piezas con la tapa izquierda, el relleno y la tapa derecha. Ideal para botones personalizados
void NSDrawThreePartImage(NSRect frame,
NSImage *startCap,
NSImage *centerFill,
NSImage *endCap,
BOOL vertical,
NSCompositingOperation op,
CGFloat alphaFraction,
BOOL flipped
);
También busque NSDrawNinePartImage