>>948
someHeavyMethod(param, completion: {[weak self] in
 guard let weakSelf = self else {
  return
 }
 
 someHeavyMethod2(param2, completion: {[weak weakSelf] in
  guard let weakSelf2 = weakSelf else {
   return
  }

  someHeavyMethod3(param3, completion: {[weak weakSelf] in
   guard let weakSelf3 = weakSelf2 else {
    return
   }
   ...
  })
 })
})
こんな感じ?確かにまだこっちのほうがよいかも。weakSelfの数字をどんどんインクリメントしていかないといけないのはどうしようもないんですかね。

>>950
PromiseKit使えるように各種ライブラリを修正していくってことですか?コールバック受けるメソッドが全部自分が書いたやつだったらPromiseKit前提にするのも良いのかな

>>951
selfのnil判定がそもそも要らないだろうってこと?感覚的にそのようには思えていないんですけれども