相关疑难解决方法(0)

您使用什么类别的方法来使Cocoa编程更容易?

我为Cocoa的内置类使用了一组类别方法,使我的生活更轻松.我将发布一些例子,但我真的想看看其他编码员提出了什么.使用什么样的方便类别方法?

示例#1:

@implementation NSColor (MyCategories)
+ (NSColor *)colorWithCode:(long)code
{
    return [NSColor colorWithCalibratedRed:((code & 0xFF000000) >> 24) / 255.0
                                     green:((code & 0x00FF0000) >> 16) / 255.0
                                      blue:((code & 0x0000FF00) >>  8) / 255.0
                                     alpha:((code & 0x000000FF)      ) / 255.0];
}
@end

// usage:
NSColor * someColor = [NSColor colorWithCode:0xABCDEFFF];
Run Code Online (Sandbox Code Playgroud)

示例#2:

@implementation NSView (MyCategories)
- (id)addNewSubViewOfType:(Class)viewType inFrame:(NSRect)frame
{
    id newView = [[viewType alloc] initWithFrame:frame];
    [self addSubview:newView];
    return [newView autorelease];
}
@end

// usage:
NSButton * myButton = [someView addNewSubviewOfType:[NSButton class] …
Run Code Online (Sandbox Code Playgroud)

cocoa categories

14
推荐指数
2
解决办法
556
查看次数

Objective-C中的可扩展集合?

我正在检查这个有此代码的问题

- (NSArray *) percentagesRGBArray:(float[]) rgbArray
{
    NSNumber *red = [NSNumber numberWithFloat:rgbArray[0] / 255];
    NSNumber *green = [NSNumber numberWithFloat:rgbArray[1] / 255];
    NSNumber *blue = [NSNumber numberWithFloat:rgbArray[2] / 255];
    NSNumber *alpha = [NSNumber numberWithFloat:rgbArray[3]];
    return [NSArray arrayWithObjects:red, green, blue, alpha, nil];
}
Run Code Online (Sandbox Code Playgroud)

我想,"那太糟糕了,如果你有三种以上的颜色怎么办?" 我知道,你没有,但是如果你确实有数1种颜色和阿尔法呢?假设你有[rgbArray count](对一个真正的数组有效吗?)只使用objective-C,你会返回一个NSArray n对象的常规方法是什么?

我只是想尝试解决这个问题,但我仍然没有在Objective-C中做到这一点.这是我失败的尝试:

- (NSArray *) what:(float[]) rgbArray
{
    int len = sizeof(rgbArray)/sizeof(float); // made up syntax
    NSLog(@"length is wrong dummy %d", len);
    NSNumber *retVal[len];
    for (int i=0;i<(len-1);i++) {
        NSNumber …
Run Code Online (Sandbox Code Playgroud)

objective-c

1
推荐指数
1
解决办法
153
查看次数

标签 统计

categories ×1

cocoa ×1

objective-c ×1