此代碼是從蘋果的文檔採取Storing Preferences in iCloud之前宣佈的inital非零值NSInteger的:爲什麼設定預期值
NSInteger reason = -1;
reason = [reasonForChange integerValue];
if ((reason == NSUbiquitousKeyValueStoreServerChange) ||
(reason == NSUbiquitousKeyValueStoreInitialSyncChange)) {
...
什麼是聲明reason
爲非零值的原因是什麼?
從integerValue
呼叫中直接聲明NSInteger
有什麼問題?
NSInteger = [reasonForChange integerValue];
if ((reason == NSUbiquitousKeyValueStoreServerChange) ||
(reason == NSUbiquitousKeyValueStoreInitialSyncChange)) {
...
這似乎是一種不同的情況,但如果我需要聲明,將其設置範圍之外的東西,我常做這樣的事情:
NSInteger reason;
if (something) {
reason = [reasonForChange integerValue];
}
那是不正確的?這與NSInteger
有關嗎?我錯過了什麼?
這就是答案。我知道我錯過了一些東西,ENUM把我扔了,當然0是一個可能的值。謝謝! – Cai