Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Swift Optional Extension Tips

Sponsored · SiteGround - Reliable hosting with speed, security, and support you can count on. →
Avatar for horimislime horimislime
August 17, 2016

Swift Optional Extension Tips

Avatar for horimislime

horimislime

August 17, 2016

More Decks by horimislime

Other Decks in Technology

Transcript

  1. Objective-C if (users.count == 0) { // nil͔ۭͩͬͨΒԿ͔͢Δ } if

    (name.length == 0) { // ໊લ͕nil͔ۭͩͬͨΒԿ͔͢Δ }
  2. Optional Extension • isNilOrEmptyతͳ΋ͷ • ௚઀Optional<String>ʹextension͸ੜ΍ͤͳ͍ // Error: 'Wrapped' constrained

    to non-protocol type 'String' extension Optional where Wrapped: String { var isNilOrEmpty: Bool { return self?.isEmpty ?? true } }
  3. Optional Extension • ಠࣗprotocolΛ༻ҙ͠ɺStringʹ४ڌͤ͞Δ protocol StringType { var isEmpty: Bool

    { get } } extension String: StringType {} extension Optional where Wrapped: StringType { var isNilOrEmpty: Bool { return self?.isEmpty ?? true } }
  4. /// Before if name == nil || name.isEmpty else {

    // nil͔ۭͩͬͨΒԿ͔͢Δ } /// After if name.isNilOrEmpty { ... }