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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了您希望在2年前了解Cocoa / Core Foundation辅助功能的哪些功能?相关的知识,希望对你有一定的参考价值。

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

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

答案

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

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

另一答案

辅助功能,用左帽,填充和右帽绘制三部分图像。非常适合自定义按钮

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

另请查找NSDrawNinePartImage

另一答案

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

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

我很少知道我可以做以下操作从主捆绑中获取图像

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

[webView loadHTMLString:htmlContent baseURL: bundleBaseURL];

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

<img src="yourImageFromTheMainBundle.jpg" />

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

另一答案

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

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

另一答案

我记得一个

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

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

另一答案

用图案图像创建颜色

[UIColor colorWithPatternImage:[UIImage imageNamed:@"mypattern.png"]];
另一答案

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

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


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

而不是更冗长


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

以上是关于您希望在2年前了解Cocoa / Core Foundation辅助功能的哪些功能?的主要内容,如果未能解决你的问题,请参考以下文章

再见,Cocoa

自制window下core animation引擎 - demo第二弹 - 仿QQ电脑管家加速小火箭

带有命令行界面的 Core Data Cocoa 应用程序

您如何找到 Cocoa 中剩余的磁盘空间?

(Mac) Cocoa 应用程序更改核心转储位置

如何在 Cocoa 文本输入系统中使用 Core Data?