RizKrizz හි යෝජනාවේ සුළු වෙනස් කිරීමක්, එමඟින් නියත ශීර්ෂ ගොනුව PCH තුළට ඇතුළත් කළ යුතු නම් එය නිසියාකාරව ක්රියාත්මක වන අතර එය සාමාන්ය දෙයකි. මුල් පිටපත PCH වෙත ආනයනය කර ඇති බැවින්, එය .m
ගොනුවට නැවත පූරණය නොකරන අතර එමඟින් ඔබට සංකේත කිසිවක් නොලැබෙන අතර සම්බන්ධකය අසතුටට පත්වේ.
කෙසේ වෙතත්, පහත දැක්වෙන වෙනස් කිරීම එය ක්රියා කිරීමට ඉඩ දෙයි. එය ටිකක් කැළඹී ඇත, නමුත් එය ක්රියා කරයි.
ඔබට අවශ්ය 3 ගොනු, .h
නිරන්තර අර්ථ දැක්වීම් ඇති ගොනු, එම .h
ගොනු සහ .m
, ගොනු මම භාවිතා කරන්නේ ConstantList.h
, Constants.h
හා Constants.m
පිළිවෙලින්. අන්තර්ගතය Constants.h
සරලව:
// Constants.h
#define STR_CONST(name, value) extern NSString* const name
#include "ConstantList.h"
සහ Constants.m
ගොනු වගේ:
// Constants.m
#ifdef STR_CONST
#undef STR_CONST
#endif
#define STR_CONST(name, value) NSString* const name = @ value
#include "ConstantList.h"
අවසාන වශයෙන්, ConstantList.h
ගොනුවේ සත්ය ප්රකාශයන් ඇති අතර එපමණයි:
// ConstantList.h
STR_CONST(kMyConstant, "Value");
…
සැලකිල්ලට ගත යුතු කරුණු කිහිපයක්:
මැක්රෝ භාවිතා කිරීම සඳහා .m
ගොනුවේ ඇතුළත් කිරීමෙන් පසුව මට එය නැවත අර්ථ #undef
දැක්වීමට සිදු විය.
මම ද භාවිතා කිරීමට සිදු #include
වෙනුවට #import
නිසි වැඩ සහ මීට පෙර precompiled වටිනාකම් දුටු සම්පාදකවරයා වළක්වා ගැනීමට මේ සඳහා.
කිසියම් අගයක් වෙනස් වූ විට ඔබේ PCH (සහ බොහෝ විට සමස්ත ව්යාපෘතිය) නැවත සකස් කිරීම මේ සඳහා අවශ්ය වනු ඇත, ඒවා සාමාන්ය පරිදි වෙන් කර (හා අනුපිටපත් කර) තිබේ නම් එය එසේ නොවේ.
යමෙකුට ප්රයෝජනවත් වන බලාපොරොත්තුව.