I hereby claim:
- I am AliSoftware on github.
- I am aligatr (https://keybase.io/aligatr) on keybase.
- I have a public key whose fingerprint is 172F 2268 1A5A BD88 4FFF D1B3 F6D2 6970 231A FBDE
To claim this, I am signing this object:
| @interface MyCell : UITableViewCell | |
| +(CGSize)cellSizeForText:(NSString*)text; | |
| @end | |
| #import "UIView+NFCore.h" // "instantiateFromNib:" | |
| @implementation MyCell |
| // For implementing the Promises pattern, I suggest http://promisekit.org | |
| // But here we will build a very simple, naive and limited implementation just to show very basic concepts | |
| import Foundation | |
| ///////////////////// | |
| // Promise Pattern (very simplified and naive) | |
| ///////////////////// | |
| class Promise<T> { |
| # Swift 2.0 | |
| protocol AbstractAnimal : CustomStringConvertible { | |
| // Abstract, to implement | |
| var firstName: String { get set } | |
| var lastName: String { get set } | |
| // var fullName: String { get } // don't declare it this time! | |
| } |
| //: Playground - noun: a place where people can play | |
| import Foundation | |
| // This is a fake implementation mimicking the behavior of having a Localizable.string | |
| // This is used here to be able to test the code easily in a Playground | |
| func localize(key: String) -> String { | |
| return [ | |
| "alert.title": "Titre d'Alerte", | |
| "alert.message": "Message d'Alerte", |
| - (void)setUp | |
| { | |
| [super setUp]; | |
| [MagicalRecord setupCoreDataStackWithInMemoryStore]; | |
| } | |
| - (void)tearDown | |
| { | |
| [MagicalRecord cleanUp]; // cleans up the CoreData stack to be ready for a clean state for the next tests | |
| // Note: any code after this line that would try to use CoreData will obviously fail |
| dispatch_once_t onceToken; | |
| SomeClass* _sharedInstance; | |
| + (id)sharedInstance | |
| { | |
| dispatch_once(&onceToken, ^{ _sharedInstance = [SomeClass new]; }); | |
| return _sharedInstance; | |
| } | |
| - (void)tearDown |
| // No dependency injection at all. | |
| // Instead of having independant modules, we have a strong dependency between the Controller, the ContactService and the View | |
| @interface Contact : NSObject | |
| @property NSString* name; | |
| // … | |
| @end | |
| @interface ContactService : NSObject | |
| - (void)fetchAllContactsWithCompletion:(void(^)(NSArray* contacts))completion; |
| enum Crash: ErrorType { case Key(String) } | |
| func kaboom(str: String) throws -> String { | |
| throw Crash.Key(str) | |
| } | |
| // Crash with EXC_BAD_ACCESS, not every time but quite often | |
| func test1() throws -> [String:[String]] { | |
| return [ | |
| "foo": try [kaboom("test1a"), kaboom("test1b")] | |
| ] |
| protocol Fooable { | |
| static var staticBigSelf: String { get } | |
| static var staticSmallSelf: String { get } | |
| var instanceBigSelf: String { get } | |
| var instanceSmallSelf: String { get } | |
| init() | |
| } | |
| extension Fooable { | |
| static var staticBigSelf: String { return String(Self) } |
I hereby claim:
To claim this, I am signing this object: