Swift-da pragma?

Objective C-də mənim #pragma mark bölmələrini simvol naviqatorunda göstərmək üçün #pragma mark istifadə edə bilərəm. C preprocessor əmri olduğundan, Swift-də mövcud deyil. Bunun üçün Swift bir imkan var və ya çirkin şərh istifadə etmək lazımdır?

834
03 июня '14 в 17:05 2014-06-03 17:05 Arbitr , 3 İyun '14 'də saat 17:05' də təyin olundu
@ 18 cavab

//MARK: istifadə edə bilərsiniz //MARK:


Sınıf uzantılarının liberal istifadəsi hər halda yaxşı bir təcrübə ola biləcək bir müzakirə də var idi. Uzantılar protokolları tətbiq edə #pragma mark görə, məsələn, bir masa görünüşünün bütün nümayəndə metodlarını genişləndirməyə #pragma mark#pragma mark daha semantik səviyyədə #pragma mark .

1047
04 июня '14 в 15:46 2014-06-04 15:46 Cavab Frank Schmitt tərəfindən 04 İyun '14 'də 15:46 2014-06-04 15:46 ' də verilir

Istifadə etmək istəyənlər üçün pragma işarələri uzantıları (ilk şərhdə qeyd olunduğu kimi) burada Swift Mühəndislə necə tətbiq etmək olar:

 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 } } 
border=0

Bu da mütləq yaxşı bir təcrübə deyil, ancaq isterseniz bunu belə edir.

160
05 июня '14 в 23:00 2014-06-05 23:00 Cavab NatashaTheRobot tərəfindən 05 iyun '14 saat 23:00 'də verilir 2014-06-05 23:00

Xcode 5-ə qədər əvvəl bir preprocessor #pragma mark var idi.

Xcode 6-dan istifadə etməlisiniz // MARK:

Bu preprocessor funksiyaları, mənbə kodu redaktoru funksiyasının açılan pəncərəsinə bəzi struktur gətirmək imkanı verir.

bir neçə nümunə:

 // MARK: 

-> bir üfüqi bölücü əvvəlcədən

 // MARK: your text goes here 

-> 'mətninizin buraya girməsini' qoyun, açılan siyahıdan qalın olaraq vurğulanır

 // MARK: - your text goes here 

-> 'mətninizin buraya girməsini' qoyun 'üfüqi bir ayırıcıdan əvvəl açılan siyahıda qalın olaraq vurğulanır

yeniləmə: bəzi ekrandakı ekrandan çəkilən bəzi səbəblər üzündən bu problemlər var:

2019

155
16 окт. Ronny Webers tərəfindən 16 oktyabrda cavab verildi 2014-10-16 18:49 '14 saat 18:49 2014-10-16 18:49

Pragma mark - [SOME TEXT HERE] Objective-C-də xətləri ayıraraq bir neçə funksiyanı qruplaşdırmaq üçün istifadə edilmişdir.

Swift-da, bunu MARK, TODO OR FIXME istifadə edərək əldə edə bilərsiniz

i MARK: //MARK: viewDidLoad

GörünüşDidLoad altında qruplaşdırılmış funksiyaları ilə birbaşa üfüqi xətt yaradır (Şəkil 1-də göstərilmişdir)

2019

09 окт. 09 oktyabrda Jayprakash Dubey tərəfindən cavab verildi 2015-10-09 16:52 '15 at 16:52 2015-10-09 16:52

Objective-C'de Xcode kodu // MARK: - foo kimi şərhləri algılar // MARK: - foo , # #pragma qədər daha portativdir. Lakin göründüyü kimi, onlar da seçilməyib (indi?).

Düzenle: Xcode 6 beta 4'te düzeltildi.

54
03 июня '14 в 17:12 2014-06-03 17:12 Cavab Nikolay Ruhe tərəfindən 03.06.14 tarixində 17:12 2014-06-03 17:12 tərəfindən verilir

Hesab edirəm ki, Extensions #pragma mark yerinə ən yaxşı yoldur.

Extensions istifadə etməzdən əvvəl kod:

 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 istifadə etdikdən sonra kod:

 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) { ... } } 
35
30 июня '14 в 12:05 2014-06-30 12:05 cavab iyun ayının 30-da saat 12: 00-da saat 12:05 da veriləcək

İndi Xcode 8 aşağıda göstərildiyi kimi işləyir və üsulun açılır siyahısında göstərilir:

2019

17 июня '16 в 3:25 2016-06-17 03:25 Cavab Antoine tərəfindən 17 İyun '16' da 3:25 2016-06-17 03:25 'də verilir

Bu səhər WWDC-də Swift laboratoriyasında bir Apple mühəndisi tərəfindən təsdiqlənmişdir ki, hazırda #pragm və ya ekvivalenti yoxdur, onlar bu səhv hesab edirlər və tezliklə görünürlər, buna görə də ümid edirəm ki, beta 2 olur.

Hər halda, bu yolda.


Xcode artıq dəstəkləyir // MARK :, // TODO: və / / FIXME landmarks kodunuzu şərh və keçid panelində onları siyahıları.

31
07 июня '14 в 0:58 2014-06-07 00:58 Cavab verilən Daniel 07 İyun '14 'də 0:58 2014-06-07 00:58

Sənədlər

Xcode keçid haqqında Apple rəsmi ağ kağız: keçid bölməsinə kod annotasiya əlavə edin

Əvvəlki

Codex - Swift 4.2

2019

03 мая '18 в 13:26 2018-05-03 13:26 Cavab George tərəfindən verilir 03 May '18 saat 13:26 'da 2018-05-03 13:26

#pragma_mark əlavə etmək üçün üç variant var:

1) // MARK: - your text here -

2) // TODO: - your text here -

3) // FIXME: - your text here -

Qeyd Istifadə edir - ayırıcılar əlavə etmək

18
30 сент. Jaydip tərəfindən verilmiş cavab 30 sentyabr 2017-09-30 11:53 '17 'da 11:53' də 2017-09-30 11:53

İstifadə

 // MARK: SectionName 

və ya

 // MARK: - SectionName 

Bu, praktika simvolunun yuxarı xəttini verəcəkdir ki, bu da onu daha oxunandır.

Sadəlik üçün sadəcə əlavə edin

 // MARK: - <#label#> 

kod parçacıklarınıza.

Alternativ yol -

Bu şəkildə istifadə edin.

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

Bu, yalnız bir əlamət əlavə etmir (pragma etiketi kimi), həm də kodu ayırır.

16
21 нояб. Cavab 21 noyabrda Nikhil Manapure tərəfindən verilir. 2016-11-21 13:54 '16 saat 13:54 'də 2016-11-21 13:54
 //# MARK: - Spinner Class Methods 

Bir ayırıcı xətt əlavə etmək üçün kolon ilə təsviriniz arasında bir xəta əlavə edin. Bu kodu daha çox təşkil etməyə kömək edir. Yuxarıdakı kodu və ekran görünüşündə, MARK şərh xətti açıq olaraq istifadə olunur.

  • // # MARK: - Mətn metodları (LINE)
  • // # MARK: mətn metodları (NO LINE)

Bu yalnız MARK şərhiylə işləyir.

2019

29 февр. Cavab 29 fevralda aishish tamsya tərəfindən verilir . 2016-02-29 12:35 '16 'da saat 12:35' da 2016-02-29 12:35

Professional bir proqramçı yaxşı kod üçün bu etiketi istifadə etməlidir. Komanda işi üçün də yaxşıdır.

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

2019

06 июля '17 в 8:12 2017-07-06 08:12 Cavab Harshil Kotecha tərəfindən iyulun 06-dən 17-dək 8:12 2017-07-06 08:12

//MARK: işləmir mənim üçün Xcode 6.3.2. Ancaq bu işi etmək üçün mən bunu etdi:

1) Kod:

 import Cocoa class MainWindowController: NSWindowController { //MARK: - My cool methods func fly() { } func turnInvisible() { } } 

2) jump bar şərh əlavə edərkən heç bir şey dəyişmir //MARK :. Ancaq, keçid panelində ən sağdakı adı basın, mənim vəziyyətimdə MainWindowController(with a leading C icon) deyir, sonra pop-up pəncərəsi görünür // MARK: comment efektləri, yəni adı, üsullar ",

2019

5
03 июля '15 в 7:42 2015-07-03 07:42 Cavab 7 iyul tarixində saat 07: 00 -da 07: 42 -də verilir

Apple, Building Cocoa Apps'ın son versiyasını elan edir,

Swift kompilyatorunda bir preprocessor yoxdur. Bunun əvəzinə, kompilyasiya xüsusiyyətlərindən faydalanır, konfiqurasiyalar qurur və eyni funksiyanı yerinə yetirir. Bu səbəbdən, preprocessor direktivləri Swift-ə idxal edilmir.

# Simvolu hələ də müxtəlif montaj konfiqurasiyaları və s. İlə işləməyinizin yolu olaraq qalır, lakin onlar pragma ruhu içində başlanğıc prosesinin ən çox ehtiyacını azaltmağa və ümumiyyətlə başqa bir funksiya dilinə istiqamətləndirməyə çalışırlar. Yəqin ki, oyun meydançalarının və REPL-nin işinə mümkün qədər yaxın bir şəkildə tamamlanmış bir koda kömək edəcəkdir.

3
03 июня '14 в 17:19 2014-06-03 17:19 cavab UtopiaLtd tərəfindən 03.06.2014 17:19 tarixində verilir 2014-06-03 17:19

Həm də maraqlı ola bilər kimi Swift 4.2 / XCode 10 kompilyator direktivləri

 #warning("Some string to display") 

və həmçinin

 #error("Some error to display") 

Həqiqətən bir şey əldən vermək istəmədiyiniz zaman bu faydalı ola bilər.

2019

16 окт. Cavab 16 oktyabrda bir neçə satır verilir . 2018-10-16 23:30 '18 saat 23:30 'də 2018-10-16' da saat 23:30 'da

Vəkillərin siyahısı əlavə edin: TODO prefiksi ilə bir fikir əlavə edin :. Məsələn: // TODO: [sizin etdiyiniz işlər siyahısı].

Səhvəni düzəltmək üçün bir xatırlatma əlavə edin: FIXME prefiksi ilə bir fikir əlavə edin :. Məsələn: // FIXME: [səhvinizi düzəldən xatırlatma].

Mövzu əlavə edin: MARK prefiksi ilə bir şərh əlavə edin. Məsələn: // MARK: [bölmənin başlığı].

Bölmə xətti əlavə edin. Şərhin üstündə bir ayırıcı əlavə etmək üçün şərhin şərh hissəsinə bir tire əlavə edin (-). Məsələn: // MARK: - [Sizin məzmununuz]. Əlavənin altında bir məhdudlaşdırıcı əlavə etmək üçün şərh əlavə olunduqdan sonra bir tire əlavə edin (-). Məsələn: // MARK: [content] -.

1
08 сент. Cavab verildi Hiren 08 Sentyabr. 2018-09-08 18:29 '18 saat 06:29 'da 2018-09-08 18:29

// MARK:// MARK:- tez istifadə edə bilərsiniz. İkinci seçim bölmə xətti əlavə edir.

-1
05 марта '18 в 17:28 2018-03-05 17:28 cavab 05 Mart 18: 17-də user1101733 tərəfindən verilmişdir 2018-03-05 17:28

Tags bağlı digər suallar və ya bir sual