您希望在2年前了解Cocoa / Core Foundation辅助功能的哪些功能?

时间:2009-02-03 21:05:30

标签: objective-c cocoa

我刚刚在NSGeometry.h中发现了NSRect辅助函数(即NSMidX,NSMaxX等......)

这些会使重复编码变得更容易。我知道NSMakeRect,NSMouseInRect,NSOffsetRect和许多其他人,但不知何故错过了有助于重新计算NSRect几何的函数。

7 个答案:

答案 0 :(得分:16)

我发现NSStringFrom *()在记录CGRect,CGPoint等结构时很有用。

您可以在Apple的Foundation Functions Reference(Wayback Machine链接)中找到全面的概述。

答案 1 :(得分:5)

辅助功能,用左帽,填充和右帽绘制三部分图像。自定义按钮的理想选择

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

同时寻找 NSDrawNinePartImage

答案 2 :(得分:4)

这是我希望我在6个月前知道的。我正在创建我们的第一个iPhone应用程序,我想使用UIWebView控件创建一个基于HTML的简单帮助文件。

但是我无法弄清楚如何嵌入我存储在Bundle中的本地图像,我不希望用户必须具有互联网访问权限才能从服务器获取图像。

我很少知道我可以执行以下操作来从主要包中获取图像

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

[webView loadHTMLString:htmlContent baseURL: bundleBaseURL];

然后,HTML中的图像可以直接调用本地图像。

<img src="yourImageFromTheMainBundle.jpg" />

我不知道我可以使用Bundle的位置设置baseURL。

答案 3 :(得分:4)

NSPathUtilities.h中的大部分内容。两年前我确实知道这件事,但是当我第一次找到它时,我希望两年前我能看到它。 : - )

在某些时候,我浪费了相当多的时间,因为我不知道NSCountedSet,并且弄乱了我的字典替换。我知道有几个人做过同样的事情,因为他们根本不知道NSSet。另一个好的“隐藏”集合是CFBinaryHeap,它实现了一个优先级队列,但是没有NS等价物。

答案 4 :(得分:3)

我记得一个

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

确定如何手动绘制圆角矩形是一个非常好的练习。还有其他我现在已经习惯了。

答案 5 :(得分:3)

使用

从图案图像创建颜色
[UIColor colorWithPatternImage:[UIImage imageNamed:@"mypattern.png"]];

答案 6 :(得分:-1)

这是一个快捷方式而不是我错过的库调用,但它符合线程的精神。

我使用的一个快捷方式是在NSLog调用中使用内联格式语句。


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

而不是更详细的


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