2013-03-22 26 views
1

我正在從應用程序隨附列表中顯示隨機選擇的ha句應用程序。用戶有能力將ha句標記爲「最喜歡的」(並且也將其取消標記)。一切工作正常與模擬器,NSLog顯示每個ha句的布爾屬性isFavorite爲0或1.布爾日誌在模擬器上罰款,但在iPhone日誌數字如96,-32等

但是,當我在iPhone上運行的應用程序,NSLog有時顯示布爾屬性有時爲0,有時爲1,有時96,有時爲-32,與用戶是否確實偏好ha句沒有任何關聯。我怎樣才能解決這個問題?

EDIT:這是我正在使用的代碼:

-(void)displayHaiku { 
    [self.displayHaikuTextView removeFromSuperview]; 
    self.haiku = [[GHHaikuInstance alloc] init]; 
    NSLog(@"Is haiku favorite? %d",self.haiku.isFavorite); 

     //On simulator the above line always logs 0 or 1, correlated exactly with whether the haiku has been marked "favorite." On iPhone it could be any number, and shows no correlation. 

    //Code that displays haiku onscreen. 
} 

isFavorite是BOOL和宣佈,以GHHaikuInstance合成的,但如果用戶將其標記爲喜愛它只是設置爲1。 (換句話說 - 我不明確將其設置爲0;我只是用默認爲0,直到用戶更改爲1)

+0

你確定你使用過%d嗎? – 2013-03-22 17:40:24

+1

你使用什麼代碼? – 2013-03-22 17:43:31

+0

只需添加代碼即可澄清。 – 2013-03-22 18:07:45

回答

3

要登錄BOOL值,您可以使用字符串

NSLog(@"Is haiku favorite? %@", self.haiku.isFavorite ? @"YES" : @"NO"); 
+0

嗯。那麼,這將擺脫奇怪的數字,但NSLog是否給我「YES」或「NO」與'isFavorite'的實際值沒有關係。 :(再次 - 這只是在手機上,它可以在模擬器上正常工作 – 2013-03-22 18:20:03

+0

根據你的代碼,你只是初始化'GHHaikuInstance',所以日誌必須是'NO'。iPhone和模擬器有什麼區別?清除並重新安裝應用程序? – 2013-03-22 18:23:24

1

請檢查發佈和調試版本:))

(檢查 「Optmization級別」 設置。Debug版本設置爲None [-O0],而Release版本設置爲最快的區別,最小[-Os]) - 所以......不同的浮點行爲..

必須從

BOOL isFavorite; 

你的聲明/ init方法更改爲

BOOL isFavorite = NO;