This is a curated list of iOS (Swift & ObjC) frameworks which are inspired by React and Elm.
- ReactSwift by @ColinEberhardt
- https://github.com/ColinEberhardt/ReactSwift
This is a curated list of iOS (Swift & ObjC) frameworks which are inspired by React and Elm.
/* | |
* This is an example provided by Facebook are for non-commercial testing and | |
* evaluation purposes only. | |
* | |
* Facebook reserves all rights not expressly granted. | |
* | |
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS | |
* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, | |
* FITNESS FOR A PARTICULAR PURPOSE AND NON INFRINGEMENT. IN NO EVENT SHALL | |
* FACEBOOK BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN |
NSString *const PSPDFApplicationDidReceiveMemoryWarningNotification = @"PSPDFApplicationDidReceiveMemoryWarningNotification"; | |
// Test with sudo memory_pressure -l critical. Don't forget to re-set afterwards! | |
__attribute__((constructor)) static void PSPDFInstallLowMemoryNotificationWarningMac(void) { | |
static dispatch_source_t source; | |
static dispatch_once_t onceToken; | |
dispatch_once(&onceToken, ^{ | |
source = dispatch_source_create(DISPATCH_SOURCE_TYPE_MEMORYPRESSURE, 0, DISPATCH_MEMORYPRESSURE_WARN|DISPATCH_MEMORYPRESSURE_CRITICAL, dispatch_get_main_queue()); | |
dispatch_source_set_event_handler(source, ^{ | |
dispatch_source_memorypressure_flags_t pressureLevel = dispatch_source_get_data(source); |
// | |
// Defaults.xcconfig | |
// | |
// Common customizations/sanitizations of the platform defaults for our projects. | |
// | |
// For compatibility reasons, the iOS platform has a couple of not–so–sensible defaults. | |
// This file collects, and annotates the deviations from these defaults. | |
// | |
// :NOTE: Some of the settings herein may be redundant for newly created projects/targets: | |
// Xcode’s project/target templates take several (but not all!) of these issues into account. |
(by @andrestaltz)
If you prefer to watch video tutorials with live-coding, then check out this series I recorded with the same contents as in this article: Egghead.io - Introduction to Reactive Programming.
// FILED: rdar://17240493 | |
// Type constraint ignored on function type parameter | |
// | |
protocol BoolT {} | |
class TrueT : BoolT {} | |
class FalseT : BoolT {} | |
protocol Nat { | |
typealias IsZero |
#import "FileChangeObserver.h" | |
#undef Assert | |
#define Assert(COND) { if (!(COND)) { raise( SIGINT ) ; } } | |
@interface FileChangeObserver () | |
@property ( nonatomic, readonly ) int kqueue ; | |
@property ( nonatomic ) enum FileChangeNotificationType typeMask ; | |
@end |
@interface NSObject (MHOverride) | |
/* | |
* Dynamically overrides the specified method on this particular instance. | |
* | |
* The block's parameters and return type must match those of the method you | |
* are overriding. However, the first parameter is always "id _self", which | |
* points to the object itself. | |
* |
CGFloat BNRTimeBlock (void (^block)(void)); |