如何在方法中向Ivar发送值

时间:2014-11-16 09:33:15

标签: objective-c methods ivars

Objective-C的新手并且保持非常简单我希望一次只能理解一件事...我建立了一个非常简单的类叫做学生,所有它做的就是添加两个数字试图看看如何事物传入和传回方法)**我重写了代码==>>看结尾看看有效的版本**

如果我的方法有

@property (nonatomic) int firstNum; 
@property (nonatomic) int secondNum;

我有一个名为student的班级实例我将firstNum的值分配给student.firstNum = 100; student.secondNum = 77;,这很容易,并且方法会添加它们并在return中发送总和

但是在主要版本中我尝试从数组中分配它并且它没有用到我试过

student.firstNum = [myIntegers objectAtIndex:0];

student.firstNum = [myIntegers objectAtIndex:i]; //using a for loop with i index 

它表示指向整数转换的指针不兼容

以下是我尝试过的主要内容片段并未完成它只是尝试设置firstNum最终我还会设置secondNum并将每对发送到该方法以添加在一起,但是现在我很难尝试让firstNum分配myIntegers[i]中的值来启动

NSMutableArray *myIntegers = [NSMutableArray array];

for (NSInteger i= 0; i <= 10; i++) {

    [myIntegers addObject:[NSNumber numberWithInteger:i]]; // this works up to here 

    student.firstNum = [myIntegers objectAtIndex:i]; // this does not work

} 

我也试过[i]

这是我的方法:

- (int)addNumbers {

    int sum = self.firstNum + self.secondNum;
    return sum;
}

这是什么工作:假设我有一个学生对象

的.m

  • (长)addNumbers:(NSNumber *)x:(NSNumber *)y {

    长款;

    sum = [x integerValue] + [y integerValue]; 回报; }

NSMutableArray * myIntegers1 = [NSMutableArray array];    NSMutableArray * myIntegers2 = [NSMutableArray array];

    for (NSInteger  i= 0; i <40; i++) {

        [myIntegers1 addObject:[NSNumber numberWithInteger:i]];
        [myIntegers2 addObject:[NSNumber numberWithInteger:i]];

long sum = [student addNumbers:[myIntegers1 objectAtIndex:i]:[myIntegers2 objectAtIndex:i]];

        NSLog(@" The sum is %ld", sum);
}

1 个答案:

答案 0 :(得分:0)

您正在创建int类型的属性,但在for循环中,您尝试为其分配NSNumber

NSNumber是c数据项的简单容器,可以容纳intfloatcharbool等。

将循环更改为:

for (NSInteger  i= 0; i <= 10; i++) {

    [myIntegers addObject:[NSNumber numberWithInteger:i]];

    student.firstNum = [[myIntegers objectAtIndex:i] intValue]; // this 'extracts' the int value from the NSNumber

}