Objective c 如何在一个类中创建一个可以在另一个类中访问的可变数组?

Objective c 如何在一个类中创建一个可以在另一个类中访问的可变数组?,objective-c,Objective C,在Stephen Kochan的Objective-C编程第6版中,他说可以创建指向数组的指针,但我得到的是Xcode错误。我的愿望是在一个类中创建一个可变数组,但能够在另一个类中访问它。下面是我的简化代码,我在其中创建数组,然后尝试设置指向它的指针,然后返回值: -(NSUInteger) makeArray { NSArray *members = [NSArray arrayWithObjects:@"Keith", nil]; NSUInteger *

在Stephen Kochan的Objective-C编程第6版中,他说可以创建指向数组的指针,但我得到的是Xcode错误。我的愿望是在一个类中创建一个可变数组,但能够在另一个类中访问它。下面是我的简化代码,我在其中创建数组,然后尝试设置指向它的指针,然后返回值:

-(NSUInteger) makeArray {
    NSArray *members = [NSArray arrayWithObjects:@"Keith", nil];
    NSUInteger *membersPtr;
    membersPtr = members;
    return *monthNamesPtr;
}
我在第三行发现了两个错误(
membersPtr=members;
-这是本书中的内容,因此我认为自本书编写以来规则已经改变)。错误是:

ARC不允许将Objective-C指针隐式转换为'NSUInteger'(也称为'unsigned long*')

从NSArray*\u strong'分配给“nsInteger*”(又称无符号长*)的指针类型不兼容


我想你可能想这样做,它不会出错

-(NSUInteger) makeArray {
    NSArray *members = [NSArray arrayWithObjects:@"Keith", nil];
    NSUInteger *membersPtr;
    membersPtr = (NSUInteger)members;
    return *membersPtr;
}
我认为单身是更好的方式! 您可以创建类并添加以下内容:

+ (instancetype)sharedInstance
{
    static dispatch_once_t once;
    static id sharedInstance;
    dispatch_once(&once, ^{
        sharedInstance = [[self alloc] init];
    });
    return sharedInstance;
}

我猜你来自
C
背景,这就是为什么你试图通过取整数来模拟某种
int*ptr
。让我简单解释一下:

NSArray *members = [NSArray arrayWithObjects:@"Keith", nil];
此处
member
是指向NSArray对象(Objective-C集合类型)的指针,该对象包含“Keith”作为第一个集合项。现在,如果需要返回指向该数组的指针,只需将该方法更改为:

-(NSArray *) makeArray {
    NSArray *members = [NSArray arrayWithObjects:@"Keith", nil];
    return *members;
}

NSArray*成员=@[@“Keith”];你的整数转换没有意义。对不起,我打错了。它应该是:return*membersPtr;我不得不对这个“返回成员”做了一个小改动;然后它成功了——谢谢!谢谢,但是您的第一套代码仍然面临错误,我不理解第二套代码。谢谢你的反馈。好的!我运行了我的第一个代码。只得到一个警告,但运行得很好!==在xcode 6.4和10.10.5中,Mac==