-1

Objective-C 的新手并保持它非常简单我希望一次理解一件事......我设置了一个非常简单的类,名为 student,它所做的只是添加两个数字,试图查看事物如何传入和传回来自方法)**我重写了代码==>>查看最后以查看有效的版本**

如果我有一个方法

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

firstNum我有一个名为 student 的类的实例,我为like赋值student.firstNum = 100; student.secondNum = 77;很容易,该方法将它们相加并将总和发送到return

但主要是我尝试从一个数组中分配它但它没有工作我试过

student.firstNum = [myIntegers objectAtIndex:0];

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

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

这是我尝试过的 main 的片段,它不完整,它只是试图firstNum最终设置开始secondNummyIntegers[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

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

    长款;

    sum = [x integerValue] + [y integerValue]; 返回总和;}

主要的

NSMutableArray *myIntegers1 = [NSMutableArray 数组]; NSMutableArray *myIntegers2 = [NSMutableArray 数组];

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

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

长总和 = [学生 addNumbers:[myIntegers1 objectAtIndex:i] :[myIntegers2 objectAtIndex:i]];

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

1 回答 1

0

您正在创建 type 的属性int,但在for循环中,您试图为它们分配NSNumber.

NSNumber是 ac 数据项的简单容器,可以容纳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

} 
于 2014-11-16T09:36:39.193 回答