Objective c 创建NSInteger类别
当试图为NSInteger创建一个类别时,编译器抱怨它“找不到‘NSInteger’的接口声明”。是否无法创建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
#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。