What Cocoa/Core Foundation helper functions do you wish you knew about 2 years ago?

前端 未结 7 1091
自闭症患者
自闭症患者 2021-01-31 00:20

I just discovered the NSRect helper functions in NSGeometry.h (i.e. NSMidX, NSMaxX, etc...)

These would have made some repetitive coding much easier. I knew about NSMak

相关标签:
7条回答
  • 2021-01-31 00:46

    One I remember

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

    Granted figuring out how to draw a rounded rectangle manually is a pretty good exercise. There are others that I am just so used to now.

    0 讨论(0)
  • 2021-01-31 00:48

    This is one that I wish I had known about 6 months ago. I was creating our first iPhone application and I wanted to create a simple help file that was based on HTML using the UIWebView Controller.

    However I could not figure out how to embed local images that I had stored in the Bundle and I did not want the user to have to have internet access to fetch the images from a server.

    Little did I know I could do the following to get images from the Main Bundle

    NSString *bundlePath = [[NSBundle mainBundle] bundlePath];
    NSURL *bundleBaseURL = [NSURL fileURLWithPath: bundlePath];
    
    [webView loadHTMLString:htmlContent baseURL: bundleBaseURL];
    

    The Image in your HTML can then call local images directly.

    <img src="yourImageFromTheMainBundle.jpg" />
    

    I had no idea I could set the baseURL with the location of the Bundle.

    0 讨论(0)
  • 2021-01-31 00:57

    Much of the stuff in NSPathUtilities.h. I did know about it two years ago, but when I first found it I wished I’d seen it two years earlier. :-)

    At some point I wasted quite a bit of time because I didn’t know about NSCountedSet, and made a mess of my dictionary-based replacement. I know of several cases where people have done the same sort of thing because they didn’t know about NSSet at all. Another good “hidden” collection is CFBinaryHeap, which implements a priority queue, but doesn’t have an NS equivalent.

    0 讨论(0)
  • 2021-01-31 01:06

    Creating a colour from a pattern image with

    [UIColor colorWithPatternImage:[UIImage imageNamed:@"mypattern.png"]];
    
    0 讨论(0)
  • 2021-01-31 01:06

    This is a shortcut instead of a library call that I missed, but it is in the spirit of the thread.

    One shortcut that I use alot is using an inline format statement in NSLog calls.

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

    instead of the more verbose

    
    NSLog([NSString stringWithFormat:@"x=%@", [someobject classname]]);
    
    0 讨论(0)
  • 2021-01-31 01:08

    Helper function to draw three part images with left cap, fill and right cap. Ideal for custom buttons

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

    Also look for NSDrawNinePartImage

    0 讨论(0)
提交回复
热议问题