Noob在这里遇到困难,可能会做一些愚蠢的事情,并会感激一些指导。
我在.h文件中声明了一个NSMutableArray(resultArray),在.m文件中设置了@property和@synthesize。
在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):
for (int i=[resultNumber length]; i>0; i--) {
NSString *theNumberRes = [NSString stringWithFormat:@"%c",[resultNumber characterAtIndex:i-1]];
[resultArray addObject:theNumberRes];
}
NSLog(@"array count: %i", [resultArray count]);
我可以单步执行代码,看到代码在预期中运行多次,但NSLog永远不会给出0以外的结果(并且悬停在resultArray上时始终显示0个对象。(简而言之,数组中的每个对象都应该是反向字符串中的字符 - 例如,如果resultNumber是12345,则数组应该存储5,4,3,2,1)。
我已经看到其他一些问题提出了类似的问题,但他们要么似乎没有帮助,要么我不理解答案,也不想用我的问题劫持别人的问题。
有人可以告诉我如何使这个工作吗?
答案 0 :(得分:1)
问题是是否调用- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
方法。还有其他初始化例程,例如
-(id)init;
-(id)initWithCoder:(NSCoder)aDecoder;
如果你的视图是从.xib文件加载的,那么有可能会调用最后一个,而不是你正在初始化数组的那个。
答案 1 :(得分:0)
%c
正在弄乱你。看这里
这适用于8位无符号字符。如果你的字符串包含utf-8字符,那么这将不起作用。您可以使用%C,或者您应该使用NSString initWithBytes:length:encoding