2015-02-06 94 views
-4
-(void)updateCharacterStatsForArmor:(RKArmor *)armor withWeapons:(RKWeapon *)weapon withHealthEffect:(int)healtheffect 
{ 
    if (armor != nil){ 
     self.character.health = self.character.health - self.character.armor.health + armor.health; 
     self.character.armor = armor; 
    } 
    else if (weapon != nil){ 
     // The problematic line: 
     self.character.damage = self.character.damage - self.character.weapon.damage + weapon.damage; 

     self.character.weapon = weapon; 
    } 
    else if (healtheffect != 0){ 
     self.character.health = self.character.health + healtheffect; 
    } 
    else { 
     self.character.health = self.character.health + self.character.armor.health; 
     self.character.damage = *(self.character.damage + self.character.weapon.damage); 
    } 
} 

@end 

帶有錯誤的行標記在代碼段中。錯誤說invalid operand to binary expression int int*Objective-C編譯錯誤:對二進制表達式無效的操作數

會最好重新啓動整個事情?

+3

什麼是RKArmor,RKWeapon,如何定義他們的'損害'屬性?最後一行有一個'*',那麼爲什麼你的問題沒有包含它?它似乎不是邏輯。 – Larme 2015-02-06 15:06:46

+0

這是我的RKArmor和RKWeapon是我的裝甲和武器類,我不知道它爲什麼不起作用 – 2015-02-06 15:32:17

+0

我猜,但你應該顯示他們的代碼,至少他們每個人是如何定義'damage' 。 – Larme 2015-02-06 15:33:35

回答

0

你可能定義了一個你用作int *而不是int的傷害屬性。檢查你的角色和武器類。我懷疑self.character.damage。

0

如果您指示的線確實存在問題,則看起來您可能已聲明該字符類的damage屬性返回int *而不是int。犯這個錯誤很容易,因爲指向對象的屬性總是指針。然而,int不是一個對象類型,所以通常不需要在屬性中存儲指向一個的指針。

你說該生產線是一個問題是:

self.character.damage = self.character.damage - self.character.weapon.damage + weapon.damage; 

但後來你有:

self.character.damage = *(self.character.damage + self.character.weapon.damage); 

它看起來像第二條線是某種試圖避免編譯器錯誤的,但似乎並沒有多大意義。如果你正在進行指針運算,你只能解除引用的結果,但對於名爲damage的屬性沒有多大意義。

要解決所有這些問題,請查看您的字符類聲明。您可能會看到類似:

@property(...) int *damage; 

刪除*並確保該屬性是assign,像這樣:

@property(assign) int damage; 

此外,海盜如何參與目前還不清楚。也許你們在匆忙的詢問中一直很匆忙? Arrr!

+0

怎麼做,所以它以後不會變成self.character.damage = *(self.character.damage + self.character.weapon.damage); ? – 2015-02-06 15:43:25

+0

我在udemy學習,這是一個海盜遊戲,但我把它變成了一個不同的主題 – 2015-02-06 15:53:32

+0

增加了一點關於如何修復。如果可行,請查看關於屬性的文檔,並確保您瞭解對象和「int」之間的差異,並且您明白該修補程序有幫助的原因。 – Caleb 2015-02-06 15:58:09

相關問題