Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/heroku/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Objective c 创建NSInteger类别_Objective C_Cocoa_Categories_Nsinteger - Fatal编程技术网

Objective c 创建NSInteger类别

Objective c 创建NSInteger类别,objective-c,cocoa,categories,nsinteger,Objective C,Cocoa,Categories,Nsinteger,当试图为NSInteger创建一个类别时,编译器抱怨它“找不到‘NSInteger’的接口声明”。是否无法创建NSInteger类别 一个简单的测试将显示编译器错误: #import <Foundation/Foundation.h> @interface NSInteger (NSInteger_Extensions) -(NSInteger)simpleTest; @end #import "NSInteger_Extensions.h" @implementati

当试图为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
#导入
@接口NSInteger(NSInteger\u扩展)
-(NSInteger)简单测试;
@结束
#导入“NSInteger_Extensions.h”
@实现NSInteger(NSInteger\u扩展)
-(NSInteger)简单测试{
返回自我+5;
}
@结束
这可能吗


谢谢

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

从上面的链接:

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
PS:
但您可以将NSNumber分类为
NSNumber
。我认为这是您想要做的事情,NSInteger只是一个基本类型的typedef,用于
int
。因为它不是对象,所以您将无法向其添加类别


您可以将其添加到
NSNumber
NSValue

中,我将我的声明回复给安德鲁。。啊!啊!谢谢我真是个傻瓜。啊——这是一个很好的观点。实际上,我正准备编写一个函数,它接受我的int,执行它的工作并返回它,但是NSNumber类别实际上对我来说更有用一些。谢谢您可能真的不想将方法添加到
NSNumber
。如果你真的这么认为,那么一定要在它们前面加上一些独特的前缀<代码>-hooli\u myMagicMethod。