Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ssh/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 可变添加对象问题_Objective C_Nsmutablearray - Fatal编程技术网

Objective c 可变添加对象问题

Objective c 可变添加对象问题,objective-c,nsmutablearray,Objective C,Nsmutablearray,Noob在这里陷入困境,可能做了一些愚蠢的事情,希望能得到一些指导 我在.h文件中声明了一个NSMutableArray(resultArray),在.m文件中设置@property和@synthesis 在initWithNibName中,我正在为数组执行alloc和init: - (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil { if ((self = [super ini

Noob在这里陷入困境,可能做了一些愚蠢的事情,希望能得到一些指导

我在.h文件中声明了一个NSMutableArray(resultArray),在.m文件中设置@property和@synthesis

在initWithNibName中,我正在为数组执行alloc和init:

- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil {
    if ((self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil])) {
        // Custom initialization
        resultArray = [[NSMutableArray alloc] init];
    }
    return self;
}
在我的一个方法中,我尝试在for循环中执行addObject,但无论我尝试什么,数组似乎都不包含对象(通过使用objectAtIndex或count):

我可以一步一步地浏览代码,看到代码在循环中运行的次数与预期的一样多,但是NSLog不会给出除0以外的结果(并且在resultArray上悬停始终显示0个对象)。(简言之,数组中的每个对象都应该是字符串中的一个反向字符-例如,如果resultNumber为12345,则数组应该存储5,4,3,2,1)

我见过许多其他问题问类似的问题,但它们要么似乎没有帮助,要么我不理解答案,不想用我的问题劫持别人的问题


有人能告诉我怎么做吗?

这个
%c
就是把你搞砸了。看这里


这是针对8位无符号字符的。如果字符串包含utf-8字符,则这将不起作用。您可以使用%C,或者应该使用
NSString initWithBytes:length:encoding
问题是
-(id)initWithNibName:(NSString*)nibNameOrNil bundle:(NSBundle*))调用nibBundleOrNil
方法。还有其他初始化例程,如

-(id)init; 
-(id)initWithCoder:(NSCoder)aDecoder;

如果您的视图是从.xib文件加载的,则可能会调用最后一个视图,而不是您在其中初始化数组的视图。

这主要是因为
resultaray
调用日志的位置是
nil
。您可以通过执行
NSLog(@“%@”,resultaray)来验证这一点
。您还应该验证它们是否是相同的实例。请尝试
NSLog(@“%@”,self)
在您列出的两种方法中。@Deepak已经调用了它,您的resultArray很可能没有初始化。您如何实例化视图?您应该在该init方法中放置一个NSLog以确保它被调用。您如何创建UIViewController?它是来自NIB还是在代码中创建的?如果tter那么你能给我们看一下相关的代码行吗?谢谢大家,让我回到绘图板上。initWithNibName没有启动。我可以通过使用相同的方法执行init来让代码工作,但是数组在其他方法中是不可用的。我意识到我在这里遗漏了一些明显的东西,所以我会亲自检查。再次感谢我的提醒奈德,我是个笨蛋。initWithNibName没有开火,所以我错过了一些显而易见的事情——回到绘图板上。
-(id)init; 
-(id)initWithCoder:(NSCoder)aDecoder;