Skip to content

Instantly share code, notes, and snippets.

@dodikk
dodikk / Arm64.m
Created December 17, 2013 10:23
ObjcMsgSend casting on x64
typedef NSDate* (*AlignMsgSendFunction)( id, SEL, BOOL, NSDate*, NSCalendar* );
AlignMsgSendFunction alignFunction = (AlignMsgSendFunction)objc_msgSend;
NSDate* result_ = alignFunction( [ NSDate class ]
, selector_
, alignToFuture_
, date_
, self );
@dodikk
dodikk / AssociationMisuse.mm
Last active January 1, 2016 05:39
Object Association misuse
static char ownershipsKey; // one for all objects
@implementation NSObject (Ownerships)
//should not autorelease returned value
- (NSMutableArray *)lazyOwnerships
{
NSMutableArray *result = objc_getAssociatedObject(self, &ownershipsKey);
if (!result) {
@dodikk
dodikk / Max_fun.h
Created December 25, 2013 11:18
Apple MAX() macro fun
#if !defined(MAX)
#define MAX(A,B) ((A) > (B) ? (A) : (B))
#endif
OSX-C07GR028DJD1:Project-iOS dodikk$ gcovr ~/Library/Developer/Xcode/DerivedData/UrlSessionOperationTest-edvqgflcedczawavcbxwhzmwumvp/
------------------------------------------------------------------------------
File Lines Exec Cover Missing
------------------------------------------------------------------------------
/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator7.0.sdk/System/Library/Frameworks/CoreGraphics.framework/Headers/CGGeometry.h
5 3 60% 278-280
/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator7.0.sdk/System/Library/Frameworks/Foundation.framework/Headers/NSRange.h
3 0 0% 17-18,21
/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator7.0.sdk/System/Library/Frameworks
-(IBAction)helpButtonTapped
{
[ self hideAllPopovers ];
__weak SDHomeViewController* weakSelf = self;
SDHelpReportType reportType = static_cast<SDHelpReportType>( self->_chartController.state.chartType );
JFFPerformSegueCallback prepareForSegue_ =^void(UIStoryboardSegue* segue_)
{
SDHelpViewController* helpVC_ = objc_member_of_cast<SDHelpViewController>(segue_.destinationViewController);
@interface ViewController : NSObject
<BMLazy>
@property (nonatomic, strong, bm_assign_once) NSString *stubObject;
@end
-(void)onSomeEvent
@interface BMXyz
@property ( nonatomic, readwrite ) NSString* writeOnceStub;
@end
@interface BMXyz
@property ( nonatomic, readwrite, bm_final ) NSString* writeOnceStub;
@end
@dodikk
dodikk / UITableViewDelegate-defaults.m
Created February 13, 2014 15:52
Return values to get default behaviour for UITableViewDelegate methods
-(CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
{
return -1;
}
-(CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section
{
return -1;
}
-(void)testLevelIsStoredAfterSuccessfullFetch
{
__block SCLevelResponse* receivedResponse = nil;
__block NSError* receivedError = nil;
SCItemsFileManagerCallbacks* callbacks = [ SCItemsFileManagerCallbacks new ];
{
callbacks.onLevelLoadedBlock = ^void( SCLevelResponse* response, NSError* error )
{
receivedResponse = response;