2014-11-16 35 views
-1

新增Objective-C並保持它非常簡單我期待了解一次一件事......我設置了一個非常簡單的類叫做student,它所做的就是添加兩個數字想看看事情如何進入和回程從方法)**我重寫了代碼== >>看看,看看到底。如果我有了如何發送值給Ivar的方法

@property (nonatomic) int firstNum; 
@property (nonatomic) int secondNum; 
的方法,工程**

版本

和我有一個我的班的實例叫學生我分配一個值firstNumstudent.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 {

    long sum;

    sum = [x integerValue] + [y integerValue]; 歸還金額; }

的NSMutableArray * myIntegers1 = [NSMutableArray的數組]; NSMutableArray * myIntegers2 = [NSMutableArray array];

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

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

長總和= [學生的addNumbers:[myIntegers1 objectAtIndex:I]:[myIntegers2 objectAtIndex:ⅰ]];

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

您陣列由NSNumber的的' *,它們是指向Objective-C對象的指針。這並不奇怪:'NSArray'只能包含指向對象的指針,而不是原語。 Hance,'objectAtIndex:'返回一個通用對象指針('id')。 'int'是一個原始的,內置的C類型。這不是一個指針。所以,你不能把'objectAtIndex:'的返回值賦給屬性,因爲一個是'id'(即指向Objective-C對象的指針),另一個是'int'。但是,您可以嘗試將「NSNumber」對象轉換爲「int」。閱讀文檔以瞭解如何。 –

回答

0

您正在創建int類型的特性,但在你的for循環,你想爲它們分配一個NSNumber

NSNumber用於交流數據項的簡單的容器,可以容納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 

} 
+0

這非常有意義。我想用 –

+0

這樣的東西 - (NSNumber *)addNumbers:(NSNumber *)x:(NSNumber *)y傳入數字我會試試看看我是否可以使用[[myIntegers objectAtIndex:i] –