ස්විෆ්ට් හි # ප්‍රාග්මා සලකුණ?


944

පරමාර්ථ C #pragma markහි, සංකේත සංචාලනයේ මගේ කේතයේ කොටස් සලකුණු කිරීමට මට භාවිතා කළ හැකිය . මෙය C preprocessor විධානයක් බැවින් එය ස්විෆ්ට් හි නොමැත. ස්විෆ්ට් හි මේ සඳහා ස්ථාවරයක් තිබේද, නැතහොත් මට කැත අදහස් දැක්විය යුතුද?


16
අපගේ දිගු කේතය සංවිධානය කිරීම ඇත්තෙන්ම වැදගත් ය.
iPatel

1
ඔබට මෙය පරීක්ෂා කළ හැකිය: stackoverflow.com/a/33040068/1753005
ජයප්‍රකාශ් ඩුබේ

1
අනෙකුත් ස්විෆ්ට් සහ එක්ස්කෝඩ් නවකයින් සඳහා, සංස්කරණ කවුළුවේ ඉහළින් ඇති “ජම්ප් බාර්” හි ඇති නිවැරදිම දේ ක්ලික් කළ විට, සෑම කෙනෙකුම කතා කරන “සංකේත නාවිකයා” ඔබට ලැබෙන එකක් බව මම සඳහන් කරමි. එය වම් පුවරුවේ සංකේත සංචාලකය නොවේ.
රෙනීපෙට්

1
Or මොරිට්ස් iOS යනු බොහෝ ගූගල් සෙවුම් මූල පදයකි. මෙම ප්‍රශ්නය නව සංවර්ධකයින්ගෙන් බොහෝ දෙනෙක් වේගයෙන් ඉගෙන ගන්නැයි අසයි. එබැවින් iOS සහ ස්විෆ්ට් යන දෙකම මෙම ප්‍රශ්නයට හොඳ මූල පදයක් යැයි මම සිතමි.
හර්ෂිල් කොටෙචා

1
Ar හර්ෂිල්කොටෙචා ස්විෆ්ට් යනු එය ක්‍රියාත්මක වන වේදිකාවෙන් ස්වාධීන ක්‍රමලේඛන භාෂාවකි. ප්‍රග්මා සලකුණ ස්විෆ්ට් හි කොටසක් වන අතර එය ලිනක්ස්, මැකෝස් සහ iOS ඇතුළු අනෙකුත් ඇපල් වේදිකා වල භාවිතා කළ හැකිය. ප්‍රාග්මා සලකුණ ස්විෆ්ට්හිම අංගයක් මිස වේදිකාවේ නොව මෙම වේදිකාවලින් මෙම ප්‍රශ්නය ටැග් කිරීම හාස්‍යයට කරුණකි. iOS යනු ස්විෆ්ට් ධාවනය වන බොහෝ වේදිකා වලින් එකක් පමණි. මෙය තේරුම් ගැනීම වැදගත්ය. මෙම ප්‍රශ්නය iOS ගැන නොවේ, ලිනක්ස් හෝ මැකෝස් ගැන ද නොවේ. එය ස්විෆ්ට් ගැන ය.
එරික් අයියා

Answers:


1212

ඔයාට පාවිච්චි කරන්න පුළුවන් // MARK:


පංති දීර් ensions කිරීම් ලිබරල් ලෙස භාවිතා කිරීම කෙසේ හෝ වඩා හොඳ භාවිතයක් විය හැකි බවට ද සාකච්ඡා වී තිබේ. දිගු වලට ප්‍රොටෝකෝල ක්‍රියාත්මක කළ හැකි බැවින්, ඔබට උදා: ඔබේ මේස දර්ශන නියෝජිත ක්‍රම සියල්ලම දිගුවකට දමා ඔබේ කේතය හැකියාවට වඩා අර්ථකථන මට්ටමින් කාණ්ඩගත #pragma markකළ හැකිය.


64
ඔව්, නව සංවර්ධක ගිවිසුම අපට මේ දේවල් ගැන කතා කිරීමට ඉඩ දෙයි :)
ෆ්‍රෑන්ක් ෂ්මිට්

4
NSCoding වැනි ආරම්භක ක්‍රමයක් ඇති ප්‍රොටෝකෝලයක් රඳවා ගැනීමට ඔබට දිගු භාවිතා කළ නොහැක. එය ඔබට සෑම අවස්ථාවකම භාවිතා කළ නොහැකි නම් වෙන් කිරීම දුෂ්කර කරයි.
මැතිව් ක්නිපන්

149
බීටා 4 වන විට, Xcode 6 හඳුනා // MARK:, // TODO:හා // FIXMEස්විෆ්ට් ප්රභවය සහ පැනීම තීරුව ලැයිස්තු ඒවා. (BTW, එය මේ වන විටත් (එය විවෘත) සී ප්රභවය කළා - #pragma markනොවන එකම ක්රමයකි.) ඔව්, ඔබ තවමත් එකතු කළ හැකි -, ඔබගේ MARKමෙනුවේ ෙවන් ඉදිරිපත් කිරීමය.
රික්ස්ටර්

17
දිගු නිර්දේශ කිරීම සඳහා +1. MARKදැන් වැඩ කිරීමේදී පවා , යම් ආකාරයක අර්ථකථන සම්බන්ධ කේත (විශේෂයෙන් ප්‍රොටෝකෝලය ක්‍රියාත්මක කිරීම) කාණ්ඩ කිරීම සඳහා දිගු භාවිතා කිරීම තවමත් ප්‍රයෝජනවත් වේ. IMHO එය ක්‍රියාත්මක කරන ක්‍රමවේදයන්ට යාබදව ඔබේ ප්‍රොටෝකෝලය අනුකූලතාව ප්‍රකාශ කිරීම වඩා හොඳය, ගොනුවේ ඉහළින් ඇති ප්‍රොටෝකෝල ප්‍රකාශ 5 ක් සහ ඊට අදාළ ක්‍රම 50 ක් අහඹු ලෙස පහළින් කොතැනක හෝ විසිරී ඇත.
රික්ස්ටර්

37
Te ස්ටීවන්ක්‍රාමර්: ඒ ආකාරයටම #pragma mark. // MARK: -යනු බෙදුම්කරුවෙකු පමණක් වන අතර, // MARK: - stuffඔබට බෙදුම්කරුවෙකු සහ ශීර්ෂයක් // MARK: - stuff -ලබා දෙන අතර ඔබට විවරකයක්, ශීර්ෂයක් සහ තවත් බෙදුම්කරුවෙකු එක් විවරණ රේඛාවකින් ලබා දේ.
රික්ස්ටර්

174

Xcode 5 දක්වා පෙර සැකසුම් විධානය #pragma markපැවතුනි.

Xcode 6 සිට, ඔබ භාවිතා කළ යුතුය // MARK:

මෙම පෙර සැකසුම් විශේෂාංග මඟින් ප්‍රභව කේත සංස්කාරකයේ ක්‍රියාකාරී පතන කොටුවට යම් ව්‍යුහයක් ගෙන ඒමට ඉඩ ලබා දේ.

උදාහරණ කිහිපයක්:

// MARK:

-> තිරස් බෙදුම්කරුට පෙර වනු ඇත

// MARK: your text goes here

-> පතන ලැයිස්තුවේ තද අකුරින් 'ඔබේ පෙළ මෙතැනට යයි'

// MARK: - your text goes here

-> පතන ලැයිස්තුවේ තද අකුරින් 'ඔබේ පෙළ මෙතැනට යයි', ඊට පෙර තිරස් බෙදුම්කරු

යාවත්කාලීන කිරීම: එකතු කළ තිර රුවක් නිසා සමහර අයට තවමත් මේ සමඟ ගැටළු ඇති බව පෙනේ:

රූප විස්තරය මෙහි ඇතුළත් කරන්න


1
XCode 6.1.1 හි // MARK: - textමා සඳහා භාවිතා කරන බෙදුම්කරුවන් නොමැති අතර පතන ලැයිස්තුවෙන් දැක්වෙන්නේ MARK: හුදෙක් පෙළ වෙනුවට පෙළයි .
mostruash

Xcode 6.1.1 හි මට හොඳින් ක්‍රියා කරයි, මම තිර රුවක් එක් කළෙමි - කරුණාකර ඔබේ කේතය සමඟ පරීක්ෂා කරන්න?
රොනී වෙබර්ස්

Objective-C ගොනු සඳහා මම එය උත්සාහ කළ බව සඳහන් කිරීමට මට අමතක විය. උත්සාහය සඳහා ඡන්දය ප්‍රකාශ කිරීම, ස්තූතියි.
mostruash

1
මට පෙනේ, දැන් එය පැහැදිලි ය :-) ආරම්භක ප්‍රශ්නය ස්විෆ්ට් ගැන අසයි, එබැවින් මම ඒ ගැන නොසිතුවෙමි. සම්පූර්ණත්වය සඳහා: අරමුණ සී ඔබ භාවිතා කරමින් එකම කළ හැකිය: - ඔබේ මාකර් අකුරු මෙහි යයි #pragma ලකුණ , හෝ හුදෙක් #pragma ලකුණ - ඔබ බාර් අවශ්ය නම්, හෝ සලකුණු ඔබේ මාකර් අකුරු මෙහි යයි #pragma එම ලබා ගැනීමට බාර් එකක් නැතිව. (කණගාටුයි, කේත කොටස් සඳහා මාක්අප් නිවැරදිව ලබා ගත නොහැක, මම ඒවා තද අකුරින් තබා ඇත)
රොනී වෙබර්ස්

එය Xcode 8.1 හි ටිකක් වෙනස් විය, නමුත් මෙම නියමය සාමාන්‍යයෙන් ක්‍රියාත්මක වේ, මෙම පිළිතුරට වඩාත් කැමති වන්න: D
windsound

167

දිගු ලකුණු එදිරිව ප්‍රාග්මා ලකුණු භාවිතා කිරීමට උනන්දුවක් දක්වන අය සඳහා (පළමු විවරණයේ සඳහන් පරිදි), ස්විෆ්ට් ඉංජිනේරුවෙකුගෙන් එය ක්‍රියාත්මක කරන්නේ කෙසේද යන්න මෙන්න:

import UIKit

class SwiftTableViewController: UITableViewController {

    init(coder aDecoder: NSCoder!) {
        super.init(coder: aDecoder)

    }

    override func viewDidLoad() {
        super.viewDidLoad()

    }
}

extension SwiftTableViewController {
    override func numberOfSectionsInTableView(tableView: UITableView?) -> Int {
        return 1
    }

    override func tableView(tableView: UITableView?, numberOfRowsInSection section: Int) -> Int {
        return 5
    }

    override func tableView(tableView: UITableView?, cellForRowAtIndexPath indexPath: NSIndexPath?) -> UITableViewCell? {
        let cell = tableView?.dequeueReusableCellWithIdentifier("myCell", forIndexPath: indexPath) as UITableViewCell;

        cell.textLabel.text = "Hello World"

        return cell
    }

}

එය අනිවාර්යයෙන්ම හොඳම පුහුණුව නොවේ, නමුත් ඔබ කැමති නම් ඔබ එය කරන්නේ මෙයයි.


6
මෙය ඉතා සිසිල් ය, නමුත් දිගු වලට නම් තිබිය හැකි නම් හොඳයි.
මැතිව් ක්නිපන්

16
Att මැතිව් - ඔබට භාවිතා කළ හැකිය typealias. උදාහරණයක් ලෙස typealias DataSource = SwiftTableViewController. එවිටextension Datasource {}
ලෝගන්

1
H ෆොන්ග්ලි UITableViewControllerයනු ප්‍රොටෝකෝලයක් නොවේ, එය පන්තියකි. ඔබ බොහෝ විට අදහස් කළ UITableViewControllerDataSourceනමුත් මෙය උදාහරණයේ භාවිතා වන රටාව නොවේ.
කේපීඑම්

4
මම කල්පනා කරන්නේ extensionප්‍රොටෝකෝලය සමඟ ශීර්ෂකය නොලැබුනේ ඇයි , වැනි extension SwiftTableViewController : UITableViewController, ඔබ එම දිගුව පන්තියට එකතු කළේ ඇයි දැයි බැලීමට වඩා කියවිය හැකි වනු ඇත.
holex

7
ඔබගේ දිගු පමණක් ඇති ප්රොටොකෝලය ක්රියාත්මක කිරීම ලෙස ක්රියා කිරීම සඳහා පවතී නම්, ඔබ එම සටහන හැකි දීර්ඝ නම: extension SwiftTableViewController : UITableViewDelegate { .. }හාextension SwiftTableViewController : UITableViewDatasource { .. }
ක්රේග් ඔටිස්

119

Pragma mark - [SOME TEXT HERE]රේඛාව වෙන් කිරීමෙන් ශ්‍රිත කිහිපයක් එකට කාණ්ඩ කිරීම සඳහා පරමාර්ථ-සී හි භාවිතා කරන ලදි .

දී ස්විෆ්ට් ඔබ මෙම භාවිතා කළ හැකි බවMARK, TODO OR FIXME

මම. ලකුණ : //MARK: viewDidLoad

මෙය viewDidLoad යටතේ කාණ්ඩ කර ඇති ශ්‍රිත සමඟ තිරස් රේඛාවක් නිර්මාණය කරයි (තිර රුව 1 හි පෙන්වා ඇත)

තිර රුව 1

ii. ටෝඩෝ: //TODO: - viewDidLoad

මෙය TODO යටතේ කණ්ඩායම් ක්‍රියාකාරී වනු ඇත : - viewDidLoad කාණ්ඩය (තිර රුව 2 හි පෙන්වා ඇත)

තිර රුව 2

iii. සවි කරන්න: //FIXME - viewDidLoad

මෙය FIXME යටතේ කණ්ඩායම් ක්‍රියාකාරී වනු ඇත : - viewDidLoad කාණ්ඩය (තිර රුව 3 හි පෙන්වා ඇත)

තිර රුව 3

විස්තර සඳහා මෙම ඇපල් ප්‍රලේඛනය පරීක්ෂා කරන්න .


TODO සහ FIXME පසු "-" කිසිවක් නොකරන බව සැලකිල්ලට ගන්න. "-" අදාළ වන්නේ මාක් නියෝගයට පමණි.
රිස්මේ

1
එය මූලාශ්‍ර ගොනුවක දකුණු පැත්තේ පෙන්විය හැකි "මිනිමාප්" කේතයේ විශාල, විශාල ප්‍රාග්ධනීකෘත අංශයක් ද නිර්මාණය කරයි. ලස්සනයි.
ඔස්කාර්

66

නිල ලියකියවිලි

Xcode Jump Bar පිළිබඳ ඇපල් හි නිල ලේඛනය: පැනීමේ තීරුවට කේත විවරණ එකතු කරන්න

නියැදි කේතය සඳහා තීරු තිරය පනින්න

නියැදි කේතය

Xcode 10.1 සහ macOS 10.14.3 (Mojave) හි හැසිරීම

Xcode 10.1 සහ macOS 10.14.3

Xcode 10.0 සහ macOS 10.13.4 (High Sierra) හි හැසිරීම

Xcode 10.0 සහ macOS 10.13.4

Xcode 9.4.1 සහ macOS 10.13.0 හි හැසිරීම

Xcode 9.4.1 සහ macOS 10.13.0

සාකච්ඡා

!!!:හා ???:සමහර විට ප්රදර්ශනය කළ නොහැක.


56

අරමුණ සී කේතය Xcode වගේ අදහස් හඳුනාගන්නා // MARK: - fooවඩා ටිකක් එහා මෙහා ගෙන යා හැකි වන #pragma. නමුත් මේවා ද ගත් බවක් නොපෙනේ (තවමත්?).

සංස්කරණය කරන්න: Xcode 6 බීටා 4 හි ස්ථාවර කර ඇත.


6
සෑම දෙයක්ම ප්‍රායෝගික ලකුණු සහිතව තබා ගැනීමට මා කැමති නිසා ඔවුන් එය ඉක්මනින් ලබා දෙනු ඇතැයි මම විශ්වාස කරමි. <
Arbitur

1
// MARK: -එය මේ මොහොතේ ක්‍රියාත්මක නොවන බව මට තහවුරු කළ හැකිය .
රූයි පෙරෙස්

ක්‍රියා නොකරයි, නමුත් නියැදි කේතය එම අදහස් දැක්වීමේ ශෛලියෙන් පිරී ඇත, එබැවින් එය අවසානයේ ලබා ගත යුතුය.
නේට් කුක්

1
අදහස් අතේ ගෙන යා හැකි වීම වැදගත් ද? වෙනත් භාෂාවකට ස්විෆ්ට් කේතයක් සෘජුවම ගෙනයාම දැනටමත් සංවර්ධකයින්ට අභියෝගයක් වන බැවිනි.
holex

හ්ම්, එය ක්‍රියාත්මක වන බවට බොහෝ අය අදහස් දැක්වීම මට පෙනේ, නමුත් මම බීටා 6 හි සිටින අතර // MARK:එය වැඩ කරන බවක් නොපෙනේ. මම අවකාශය සමඟ සහ නැතිව, බඩවැල් සමඟ සහ නැතිව, සියලු තොප්පි සහ මිශ්‍ර (මාර්ක්) සමඟ උත්සාහ කර ඇත්තෙමි. උපක්‍රමයක් තිබේද? මට පෙරවදනක් හෝ යමක් සක්‍රිය කිරීමට අවශ්‍යද?
ඔලී

37

මම හිතන්නේ Extensionsඒ වෙනුවට වඩා හොඳ ක්‍රමයක් #pragma mark.

භාවිතා කිරීමට පෙර කේතය Extensions:

class ViewController: UIViewController, UICollectionViewDataSource, UICollectionViewDelegate {
    ...

    func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int {
        ...
    }

    func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {
        ...
    }

    func collectionView(_ collectionView: UICollectionView, didSelectItemAt indexPath: IndexPath) {
        ...
    }
}

භාවිතා කිරීමෙන් පසු කේතය Extensions:

class ViewController: UIViewController {
    ...
}

extension ViewController: UICollectionViewDataSource {
    func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int {
        ...
    }

    func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {
        ...
    }
}

extension ViewController: UICollectionViewDelegate {
    func collectionView(_ collectionView: UICollectionView, didSelectItemAt indexPath: IndexPath) {
       ...
    }
}

6
ප්‍රාග්මා වලට වඩා එහි විභවය බොහෝ සෙයින් වැඩි යැයි මම සිතමි. නමුත් මේ වන විට ප්‍රාග්මාස් වඩා හොඳය. මන්දයත් ප්‍රාග්මා මෙන් ඩ්‍රොප් ඩවුන් මෙනුවේ දිගුව ප්‍රොටොකෝල් නම් හෝ අභිරුචි නම් නොපෙන්වයි ( වාස්සාආහ්ගේ පිළිතුරට පහළින් බලන්න )
nacho4d

නව "// MARK:" කේතය ප්‍රයෝජනවත් වේ, නමුත් දිගු භාවිතා කරන ආකාරය පිළිබඳ ඔබේ පැහැදිලි උදාහරණයට මම කැමතියි - විශේෂයෙන් නියෝජිත කාර්යයන් සඳහා!
එල්මර් කැට්

දිගු මඟින් ඔබට කළ හැකි දේ සීමා කරයි - උදා: ගබඩා කළ දේපල නොමැත
ව්‍යාකූල වෝර්ලන්

1
මම මේ දෙකම භාවිතා කරමි, මන්ද extensionඑක්ස්කෝඩ් හි බ්‍රෙඩ්ක්‍රම්බ් පාලනයේ පතන මෙනුව තුළ පමණක් කැපී පෙනෙන්නේ නැත.
නිකොලස් මාරි

36

Xcode 8 දැන් එය පහත පරිදි හසුරුවන අතර පහත වැටීමේ ක්‍රමයේදී මේ ආකාරයට පෙන්වයි:

රූප විස්තරය මෙහි ඇතුළත් කරන්න


මාක් ගැන කුමක් කිව හැකිද? එය // ARK: මට Xcode 8
fnc12

ඔබේ කේතය පරීක්ෂා කරන්න, ඔබ ඔබේ // මාක්: රේඛාවට ඉහළින් යුනිකෝඩ් අක්ෂර කිහිපයක් භාවිතා කරයි. කිසියම් හේතුවක් නිසා xcode ව්‍යාකූල වේ (සහ උරා බොන නිසා), එය හැසිරවිය නොහැක.
carlos_ms

3
මෙම !!!සහ ???කාරක රීති Xcode 8.3.3 ... මත වැඩ කර නැත
ක්රිස් ෆෙඩ්රික්

H ක්‍රිස්ෆ්‍රෙඩ්රික් පවා !!! සහ ??? ඩොසෙන්ට් Xocde 11.3.1 හි වැඩ කරන බවක් නොපෙනේ
ජයප්‍රකාශ් ඩුබේ

34

අද උදෑසන ඩබ්ලිව්ඩබ්ලිව්ඩීසී හි ස්විෆ්ට් විද්‍යාගාරයේ ඇපල් ඉංජිනේරුවෙකු සමඟ තහවුරු කර ඇති පරිදි, මේ වන විට # ප්‍රාග්මා හෝ ඊට සමාන කිසිවක් නොමැති බව ඔවුන් විශ්වාස කරයි, ඔවුන් මෙය දෝෂයක් ලෙස සලකන අතර එය ඉක්මනින් පැමිණෙනු ඇත, එබැවින් මම බීටා 2 අනුමාන කරමි, මම බලාපොරොත්තු වෙමි.

කෙසේ හෝ වේවා, එය සිදුවෙමින් පවතී.


Xcode දැන් ඔබේ කේතය විවරණය කිරීමට // MARK:, // TODO: සහ // FIXME බිම් සලකුණු සඳහා සහය දක්වන අතර ඒවා පැනීමේ තීරුවේ ලැයිස්තුගත කරයි


6
බීටා 2, එය තවමත් නොමැත
cescofry

අමුතු. මට හොඳින් වැඩ කරයි. PS: ඔබේ Xcode යාවත්කාලීන කරන්න.
ඩැනියෙල්

An ඩැනියෙල්: එක්ස් කේතයේ කුමන අනුවාදයද? මම Xcode 6.4 භාවිතා කරන අතර එය ක්‍රියාත්මක නොවන බව පෙනේ.
ජයප්‍රකාශ් ඩුබේ

20

#pragma_markස්විෆ්ට් හි එක් කිරීමට විකල්ප තුනක් තිබේ :

1) // MARK: - your text here -

2) // TODO: - your text here -

3) // FIXME: - your text here -

සටහන: -බෙදුම්කරුවන් එකතු කිරීම සඳහා භාවිතා කරයි


17

භාවිත

// MARK: SectionName

හෝ

// MARK: - SectionName

මෙය ප්‍රග්මා සලකුණට ඉහළින් රේඛාවක් ලබා දෙන අතර එය වඩාත් කියවිය හැකිය.

පහසුව සඳහා එකතු කරන්න

// MARK: - <#label#>

ඔබේ කේත කොටස් වලට.

විකල්ප මාර්ගය -

මේ ආකාරයෙන් එය භාවිතා කරන්න

private typealias SectionName = ViewController
private extension SectionName  {
    // Your methods
}

මෙය ලකුණු එකතු කිරීම පමණක් නොව (ප්‍රාග්මා සලකුණ මෙන්) පමණක් නොව කේතය මනාව වෙන් කරයි.


1
ඔබ භාවිතා කරන්නේ නම් Swiftlint , එය ගැන පැමිණිලි කරනු ඇත //MARKආකෘතිය (ඉඩක්) සහ යෝජනා // MARK: (text)( එක් හිස් අතර //සහ මාක්, ඉඩ නැති අතර MARKසහ :, සහ එක් හිස් අතර :හා මෙම කොටස නම)
නිකොලායි Miari

2
IcNicolasMiari, ස්තූතියි, මම ඔබේ යෝජනාවට අනුව සංස්කරණය කර ඇත්තෙමි. ඊළඟ ව්යාපෘතිය සඳහා ස්විෆ්ට්ලින්ට් භාවිතා කිරීමට ද උත්සාහ කරනු ඇත. :)
නිඛිල් මනපුරේ

13
//# MARK: - Spinner Class Methods

බෙදුම් රේඛාවක් ඇතුළු කිරීම සඳහා මහා බඩවැල සහ ඔබේ විස්තරය අතර රේඛාවක් එක් කරන්න. මෙය ඔබගේ කේතය ඊටත් වඩා සංවිධානය කිරීමට උපකාරී වේ. ඉහත කේතය සහ තිර රුව ඇතුළත් කර ඇති පේළියක් සමඟ මාක් විවරණය භාවිතා කරයි.

  1. // # මාක්: - පෙළ ක්‍රම (LINE)
  2. // # මාක්: පෙළ ක්‍රම (රේඛාවක් නැත)

මෙය ක්‍රියාත්මක වන්නේ මාක් අදහස් දැක්වීම සමඟ පමණි.

රූප විස්තරය මෙහි ඇතුළත් කරන්න


12

ස්විෆ්ට් 4.2 / එක්ස් කෝඩ් 10 සම්පාදක විධානයන් ගැන ඔබ උනන්දු විය හැකිය

#warning("Some string to display")

සහ

#error("Some error to display")

ඔබට යමක් මග හැරීමට අවශ්‍ය නැති විට එය ප්‍රයෝජනවත් විය හැකිය.

රූප විස්තරය මෙහි ඇතුළත් කරන්න


සිසිල්. බාලදක්ෂ බාලදක්ෂ නීතිය ක්‍රියාත්මක වන විට මම අනෙක් කණ්ඩායම් සාමාජිකයින්ට අනතුරු අඟවන්නෙමි.
සාසාද් හිසේන් ඛාන්

9

වෘත්තීය ක්‍රමලේඛකයා හොඳ කේතය සඳහා මෙම ටැගය භාවිතා කළ යුතුය. එය කණ්ඩායම් වැඩ සඳහා ද හොඳ ය.

// MARK: example Web Service start here
// TODO: example 1
// FIXME: Please change BASE url before live 

මේ වගේ ක්‍රමයක් සොයා ගැනීම පහසුය

මේ වගේ ක්‍රමයක් සොයා ගැනීම පහසුය


6

Xcode 11 හි ඔවුන් සක්‍රිය කළ හැකි මිනිමාප් එකතු කළහ Editor -> Minimap.

මිනිමාප් මඟින් කේතයේ වේගවත් දිශානතිය සඳහා එක් එක් ලකුණු පෙළ පෙන්වනු ඇත. සෑම සලකුණක්ම ලියා ඇත// MARK: Variables

රූප විස්තරය මෙහි ඇතුළත් කරන්න


5

//MARK:නැත පෙනේ Xcode 6.3.2 මට වැඩ කරන්න. කෙසේ වෙතත්, මෙය වැඩ කිරීමට මා කළේ මෙයයි :

1) කේතය:

import Cocoa

class MainWindowController: NSWindowController {

    //MARK: - My cool methods

    func fly() {
    }

    func turnInvisible() {

    }
}

2) : විවරණය jump barඑකතු කිරීමේදී කිසිවක් වෙනස් නොවන බව පෙනේ //MARK. කෙසේ වෙතත්, මම පැනීමේ තීරුවේ දකුණු පස ඇති නම මත ක්ලික් කළහොත්, එය පවසන පරිදි MainWindowController(with a leading C icon), උත්පතන කවුළුවක් මඟින් // MARK: comment හි ප්‍රති showing ල පෙන්වන දර්ශනයක් පෙන්වනු ඇත, එනම් “මගේ සිසිල් ක්‍රම” යනුවෙන් සඳහන් ශීර්ෂ පා: යක්:

රූප විස්තරය මෙහි ඇතුළත් කරන්න

3) මගේ කේතයේ එක් ක්‍රමයක් මත ක්ලික් කළහොත්, එම ක්‍රමය පැනීමේ තීරුවේ නිවැරදි පිවිසුම බවට පත්වන බව ද මම දනිමි. MainWindowController(with a leading C icon)පැනීමේ තීරුවේ නිවැරදිම පිවිසුම ලබා ගැනීම සඳහා, මගේ ක්‍රමවලට ඉහළින් ඇති සුදු අවකාශය මත ක්ලික් කළ යුතුය.


එය එසේ විය යුතු නොවේද? ඔබට ඉහළ තීරුව ක්ලික් කළ යුතු බව?
ආර්බිටූර්

3

බිල්ඩින් කොකෝවා ඇප්ස් හි නවතම අනුවාදයේ ඇපල් පවසයි ,

ස්විෆ්ට් සම්පාදකයාට පෙර සැකසුම් යන්ත්‍රයක් ඇතුළත් නොවේ. ඒ වෙනුවට, එකම ක්‍රියාකාරීත්වය සාක්ෂාත් කර ගැනීම සඳහා සම්පාදක-කාල ගුණාංග, වින්‍යාසයන් සහ භාෂා අංගයන්ගෙන් ප්‍රයෝජන ගනී. මෙම හේතුව නිසා, පෙර සැකසුම් නියෝග ස්විෆ්ට් හි ආනයනය නොකෙරේ.

# අක්‍ෂරය තවමත් ඔබ විවිධ ගොඩනැඟිලි වින්‍යාසයන් හා ඒ හා සමාන දේවල් සමඟ කටයුතු කරන ආකාරය ලෙස පෙනේ, නමුත් ඔවුන් පෙනෙන්නේ ප්‍රාග්මා නහරයේ බොහෝ පෙර සැකසුම් සඳහා වන ඔබේ අවශ්‍යතාවය කපා හැර වෙනත් භාෂා අංගයන් වෙත ඔබව යොමු කිරීමට ය. සමහර විට මෙය ක්‍රීඩා පිටියේ ක්‍රියාකාරිත්වයට සහ REPL සම්පුර්ණයෙන්ම සම්පාදනය කරන ලද කේතයට හැකි තරම් සමීපව හැසිරීමට උපකාරී වේ.


0

කළ යුතු අයිතමයක් එක් කරන්න: TODO උපසර්ගය සමඟ අදහස් දැක්වීමක් ඇතුළත් කරන්න :. උදාහරණයක් ලෙස: // TODO: [ඔබගේ කළ යුතු අයිතමය].

දෝෂ නිවැරදි කිරීමේ මතක් කිරීමක් එක් කරන්න: FIXME උපසර්ගය සමඟ අදහසක් ඇතුළත් කරන්න :. උදාහරණයක් ලෙස: // FIXME: [ඔබේ දෝෂ නිවැරදි කිරීමේ මතක් කිරීම].

ශීර්ෂයක් එක් කරන්න: MARK උපසර්ගය සමඟ අදහසක් ඇතුළත් කරන්න :. උදාහරණයක් ලෙස: // මාක්: [ඔබේ කොටස ශීර්ෂය].

බෙදුම් රේඛාවක් එක් කරන්න: ව්‍යාඛ්‍යාවට ඉහළින් බෙදුම්කරුවෙකු එක් කිරීමට, විවරණයේ විවරණ කොටසට පෙර යටි ඉරක් (-) එක් කරන්න. උදාහරණයක් ලෙස: // මාක්: - [ඔබේ අන්තර්ගතය]. විවරණයට පහළින් බෙදුම්කරුවෙකු එක් කිරීමට, විවරණයේ විවරණ කොටසෙන් පසුව යටි ඉරක් (-) එක් කරන්න. උදාහරණයක් ලෙස: // මාක්: [ඔබේ අන්තර්ගතය] -.



0

ප්‍රග්මා සලකුණ යනු ඔබේ කේතයේ කියවීමේ හැකියාව වැඩි දියුණු කිරීමේ ක්‍රමයකි. ප්‍රාග්මා අදහස් Xcode ජම්පර් එකේ ටැග් මෙන් දිස් වේ.

//MARK:  <Your comment goes here>

උදාහරණය: කේතයේ,

//MARK: Properties

// MARK: View Life cycle

//MARK: Helper methods

Xcode පැනීමේ තීරුවේ එය දිස්වන්නේ එලෙසයි.

රූප විස්තරය මෙහි ඇතුළත් කරන්න


ඔබේ ගොනුවේ නිවැරදි ස්ථානවල ඒවා ඇතුළත් කළ යුතුය.
varunrathi28
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.