创建NSInteger类别

Hoo*_*cat 2 cocoa objective-c categories nsinteger

在尝试为NSInteger创建类别时,编译器会抱怨它"无法找到'NSInteger'的接口声明".是否无法创建NSInteger类别?

一个简单的测试将显示编译器错误:

#import <Foundation/Foundation.h>

@interface NSInteger (NSInteger_Extensions)

-(NSInteger)simpleTest;

@end



#import "NSInteger_Extensions.h"

@implementation NSInteger (NSInteger_Extensions)

-(NSInteger)simpleTest {
    return self + 5;
}

@end
Run Code Online (Sandbox Code Playgroud)

这有可能吗?

谢谢!

And*_*rew 9

NSinteger不是一个接口.所以这是不可能的.

http://developer.apple.com/library/mac/#documentation/Cocoa/Reference/Foundation/Miscellaneous/Foundation_DataTypes/Reference/reference.html

从上面的链接:

Used to describe an integer.

#if __LP64__ || TARGET_OS_EMBEDDED || TARGET_OS_IPHONE || TARGET_OS_WIN32 || NS_BUILD_32_LIKE_64
typedef long NSInteger;
#else
typedef int NSInteger;
#endif
Run Code Online (Sandbox Code Playgroud)

PS: 但你可以做一个类别NSNumber.我认为这是你想做的事情


Fre*_*eer 6

NSInteger只是一个int原始类型的typedef .由于它不是对象,因此您无法为其添加类别.

您可以改为将此添加到NSNumberNSValue.