我的遊戲有一個接收字符串的方法。自iOS7開始,它有時會崩潰。檢查變量是否包含內存地址
在該方法中,我在該字符串上調用lowercaseString
,然後它與EXC_BAD_ACCESS
崩潰。
-(void)changeDirection:(NSString *)_direction {
if (![[direction lowercaseString] isEqualToString:[_direction lowercaseString]]) {
}
}
東西,我注意到的是,這時候,這串似乎是一個內存地址:
這就解釋了爲什麼會崩潰 - 我在記憶調用lowercaseString
地址。
現在,最合理的解決方案是查看爲什麼此方法接收內存地址而不是實際的字符串,我猜。
但是,現在,我希望做一個快速的解決方法,這導致了這個問題:
如何檢測給定參數是否像@"Hello"
或內存地址的實際字符串對象?
可能是一個已經發布的NSString –
在Objective-C中,所有對象都通過它們的內存地址進行傳遞,所以不存在檢測參數是字符串對象還是內存地址的情況。最有可能'_direction'要麼沒有被初始化,要麼被分配給它,但它指向的對象被刪除。 – user1118321