天天看點

Swift和OC代碼注釋分析 #pragma mark, FIXME and TODO

While coding in Objective-C, #pragma mark isveryhandyfor code organization in the Jump Bar. Forexample: 

#pragma mark – Initialization code here... 
#pragma mark – Table Managementmore code here...
      

The Jump Bar would show the following, where code sections areclearly marked:

Swift和OC代碼注釋分析 #pragma mark, FIXME and TODO

#pragma mark Alternative for Swift

Xcode 6 now supports a similar featureusing // MARK:

// MARK: - Initializationcode here... 
// MARK: - View Managementmore code here...
      

With the result being:

Swift和OC代碼注釋分析 #pragma mark, FIXME and TODO

The “-” after //MARK: is optional, including the “-”results the divider line shown just above thetext. 

// TODO: in Swift

Although not used as frequently (at least from my perspective),but handy none-the-less are FIXME and TODO. The later is nice whenyou need to set a reminder for code that you need to revisit.

override func viewDidLoad(){
  super.viewDidLoad()
 
  // TODO: add configuration code
  self.configureView()}
      

You can also add TODO: outside a method as shown below:

// TODO: revisit memory management handlingfunc setupMemoryRecoveryCode(){}
      

Notice in the screenshot below that the TODO: references appearat different levels – the first TODO: isindented, indicating it is referencing something to do inside themethod itself.

Swift和OC代碼注釋分析 #pragma mark, FIXME and TODO

// FIXME: in Swift

// FIXME: works in a similar manner, as it can be place eitherinside or out of a method.

For example, I’ll often place a // FIXME: with a bug referenceonce I track down the location of the problem. This gives me amarker and I can quickly return to the issue later.

override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell{
  // FIXME: - Bug 2102
  let cell = tableView.dequeueReusableCellWithIdentifier("Cell", forIndexPath: indexPath) as UITableViewCell  let object = objects[indexPath.row] as NSDate
  cell.textLabel.text = object.description  return cell}
      

The output in the Jump Bar looks as follows:

Swift和OC代碼注釋分析 #pragma mark, FIXME and TODO