第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

object-C中的常數(shù)

object-C中的常數(shù)

iOS
Qyouu 2019-06-06 13:21:40
object-C中的常數(shù)我在開發(fā)一個可可粉應(yīng)用程序,我使用常量NSStrings作為存儲我的首選項的鍵名的方法。我理解這是一個好主意,因為它允許在必要時很容易地改變鍵。另外,這是一個“把你的數(shù)據(jù)和你的邏輯分開”的整體概念。無論如何,是否有一種為整個應(yīng)用程序定義一次這些常量的好方法?我確信有一種簡單而明智的方法,但現(xiàn)在我的類只是重新定義它們使用的方法。
查看完整描述

3 回答

?
隔江千里

TA貢獻1906條經(jīng)驗 獲得超10個贊

您應(yīng)該創(chuàng)建一個頭文件,如

//?Constants.hFOUNDATION_EXPORT?NSString?*const?MyFirstConstant;FOUNDATION_EXPORT?NSString?*const?MySecondConstant;//etc.

(你可以用extern而不是FOUNDATION_EXPORT如果您的代碼不用于混合C/C+環(huán)境或其他平臺)

可以將此文件包含在使用常量的每個文件中,也可以包含在項目的預(yù)編譯頭中。

在.m文件中定義這些常量,如下所示

//?Constants.mNSString?*const?MyFirstConstant?=?@"FirstConstant";NSString?*const?MySecondConstant?=?@"SecondConstant";

應(yīng)該將Constants.m添加到應(yīng)用程序/框架的目標(biāo)中,以便將其鏈接到最終產(chǎn)品。

使用字符串常量代替#defineD常量是可以使用指針比較來測試等式的(stringInstance == MyFirstConstant),它比字符串比較快得多([stringInstance isEqualToString:MyFirstConstant])


查看完整回答
反對 回復(fù) 2019-06-06
?
桃花長相依

TA貢獻1860條經(jīng)驗 獲得超8個贊

最簡單的方法:

// Prefs.h#define PREFS_MY_CONSTANT @"prefs_my_constant"

更好的方法:

// Prefs.hextern NSString * const PREFS_MY_CONSTANT;// Prefs.mNSString * const PREFS_MY_CONSTANT = @"prefs_my_constant";

第二個優(yōu)點是,更改常量的值并不會導(dǎo)致整個程序的重建。


查看完整回答
反對 回復(fù) 2019-06-06
?
GCT1015

TA貢獻1827條經(jīng)驗 獲得超4個贊

還有一件事要提。如果需要一個非全局常量,則應(yīng)使用static關(guān)鍵詞。

// In your *.m filestatic NSString * const kNSStringConst = @"const value";

因為static關(guān)鍵字時,此Const在文件之外不可見。


輕微更正@QuinnTaylor:靜態(tài)變量在編譯單元..通常,這是一個單一的.m文件(如本例所示),但如果在其他地方包含的標(biāo)頭中聲明.m文件,它可能會咬死您,因為編譯后會得到鏈接器錯誤。


查看完整回答
反對 回復(fù) 2019-06-06
  • 3 回答
  • 0 關(guān)注
  • 569 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號