Skip to content

Instantly share code, notes, and snippets.

View arkilis's full-sized avatar
🎯
Focusing

Ben arkilis

🎯
Focusing
View GitHub Profile
@arkilis
arkilis / MyProtocol.h
Created April 25, 2017 11:40
protocol
#import <Foundation/Foundation.h>
@protocol MyProtocol <NSObject>
@required
-(void) mustImplementMethod1;
-(void) mustImplementMethod2;
-(void) mustImplementMethod3;
-(void) mustImplementMethod4;
@arkilis
arkilis / protocolViewcontroller.m
Created April 25, 2017 11:41
protocol implementation
#import <UIKit/UIKit.h>
#import "MyProtocol.h"
@interface ViewController : UIViewController <MyProtocol>
@end
import UIKit
protocol WeatherServiceDelegate: class {
func didCompleteRequest(result: String)
}
class WeatherService: NSObject {
weak var delegate:WeatherServiceDelegate?
@arkilis
arkilis / delegation_swift_WeatherService_viewcontroller.swift
Created April 26, 2017 23:56
delegation swift WeatherService viewcontroller
// There are two ways of doing this:
// Way 1: use swift's multi-inheritance
class ViewController: UIViewController, WeatherServiceDelegate {
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
class Foo(object):
variable = 1
def method(self, param):
print "run instance method (%s,%s)" % (self, param)
@classmethod
def class_method1(cls, param):
@arkilis
arkilis / CalculateChain.m
Created May 9, 2017 22:24
CalculateChain class
//CalculateChain.h
#import <Foundation/Foundation.h>
@interface CalculateChain : NSObject
@property (nonatomic) float result;
@property (readonly, nonatomic, copy) CalculateChain* (^add)(float num);
@property (readonly, nonatomic, copy) CalculateChain* (^minus)(float num);
@arkilis
arkilis / NSNumber+CalculateChain2.m
Created May 9, 2017 22:36
NSNumber+CalculateChain2
// NSNumber+CalculateChain2.h
#import <Foundation/Foundation.h>
@interface NSNumber (CalculateChain2)
-(NSNumber*(^)(float))add;
-(NSNumber*(^)(float))minus;
-(NSNumber*(^)(float))multiply;
-(NSNumber*(^)(float))divide;
@arkilis
arkilis / kvo.m
Created May 13, 2017 23:50
kvo on viewcontroller
// view controller.h
#import <UIKit/UIKit.h>
#import "Item.h"
@interface ViewController : UIViewController
@property (nonatomic, strong) NSString *myVal;
@end
@arkilis
arkilis / item.m
Last active May 17, 2017 21:53
singleton in objective-c
// item.h
#import <Foundation/Foundation.h>
@interface Item : NSObject
+(instancetype)sharedInstance;
@end
@arkilis
arkilis / item_gcd.m
Created May 17, 2017 22:01
item gcd singleton
#import "Item.h"
static id _instance;
@implementation Item
+ (id)allocWithZone:(struct _NSZone *)zone
{
static dispatch_once_t onceToken;