Evg*_*ban -5 iphone objective-c nsmutablearray ios
我希望有一个数值为"25公斤","26公斤"......"149公斤","150公斤"的阵列.为了简化任务我写了这个:
-(NSMutableArray*)weightArray{
NSMutableArray *myArray;
for (int i=25; i++; i<150){
NSString *weightString;
weightString = [NSString stringWithFormat:@"%d kg", i];
[myArray addObject:weightString];
}
return myArray;
}
Run Code Online (Sandbox Code Playgroud)
然后在我的视图中的viewDidload中我写道:NSLog (@"%@", [self weightArray]);
但看起来它不起作用.我可能会遗漏像语法这样明显的东西.为什么不起作用?
更新:最后我找到了一个解决方案 - 首先,我在@implementation部分声明了weightArray,然后我写道:
-(void)fillingArray{
if (!weightArray){
for (int i=25; i<150 ;i++){
NSString *weightString = [[NSMutableArray alloc] init];
weightString = [NSString stringWithFormat:@"%d kg", i];
[weightArray addObject:weightString];
NSLog(@"%@", weightString);
}
}
}
Run Code Online (Sandbox Code Playgroud)
在viewDidLoad我写道:
[self fillingArray];
NSLog(@"%@", weightArray);
Run Code Online (Sandbox Code Playgroud)
我想,我的问题出在那个字符串NSLog(@"%@",[self weightArray]); 在方括号中,它假设是方法名称,但我试图指向数组,没有任何事情发生.
你正在做的事情有3个问题.
NSMutableArray *myArray = [[NSMutableArray alloc] init];以便它实际存在.NSLog需要做的就是NSLog (@"%@", [self weightArray]);因为你是一个数组而不是一个数字.for陈述的第二和第三部分是相反的.那么,i++你的状况是否总是非零.这种无限循环是导致机器锁定的原因.编辑:这是一种只创建一次数组的更好方法.
-(NSMutableArray*)weightArray{
static NSMutableArray *myArray;
if (!myArray){
myArray = [[NSMutableArray alloc] init];
for (int i=25; i<150 ;i++){
NSString *weightString;
weightString = [NSString stringWithFormat:@"%d kg", i];
[myArray addObject:weightString];
}
}
return myArray;
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
491 次 |
| 最近记录: |