C&C++   发布时间:2022-04-03  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了objective-c – 如何扩展NSArray?大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
这是我的尝试:

H文件

@interface Strings : NSArray
@end
@H_3_2@m文件

@implementation Strings
- (id) init
{
    [self initWithObjects:
     @"One.",nil];
    return self;
}
@end

我跑的时候得到这个:

‘NSInvalidArgumentexception’,原因:’* – [NSArray initWithObjects:count:]:仅为抽象类定义方法.定义 – [Strings initWithObjects:count:]!’

这就是我所做的:

H文件

@interface Strings : NSObject
+ (NSArray*) getStrings;
@end
@H_3_2@m文件

@implementation Strings
+ (NSArray*) getStrings
{
    NSArray* Strings = [[NSArray alloc] initWithObjects:
     @"One.",nil];
    return Strings;
}
@end

解决方法

NSArray是一个 class cluster (link to Apple’s documentation).这意味着当您尝试创建NSArray时,系统会创建一些NSArray的私有子类. NSArray类只定义了一个接口; NSArray的子​​类提供接口的实现.

您可以编写自己的NSArray子类,但必须为数组中的对象提供自己的存储.您必须自己初始化该存储.错误消息通过说您需要在子类中覆盖initWithObjects:count:来告诉您这一点.您的覆盖需要将对象放入您作为类实现的一部分分配的任何存储中.

可变参数initWithObjects:方法的NSArray实现只是initWithObjects:count:的包装器,因此您不必实现initWithObjects:.

大佬总结

以上是大佬教程为你收集整理的objective-c – 如何扩展NSArray?全部内容,希望文章能够帮你解决objective-c – 如何扩展NSArray?所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。