blob: f590703f2bf955474b78bb122c69057b3c1d964c [file] [log] [blame] [edit]
//
// RACTestObject.m
// ReactiveCocoa
//
// Created by Josh Abernathy on 9/18/12.
// Copyright (c) 2012 GitHub, Inc. All rights reserved.
//
#import "RACTestObject.h"
@implementation RACTestObject
- (void)dealloc {
free(_charPointerValue);
free((void *)_constCharPointerValue);
}
- (void)setNilValueForKey:(NSString *)key {
if (!self.catchSetNilValueForKey) [super setNilValueForKey:key];
}
- (void)setCharPointerValue:(char *)charPointerValue {
if (charPointerValue == _charPointerValue) return;
free(_charPointerValue);
_charPointerValue = strdup(charPointerValue);
}
- (void)setConstCharPointerValue:(const char *)constCharPointerValue {
if (constCharPointerValue == _constCharPointerValue) return;
free((void *)_constCharPointerValue);
_constCharPointerValue = strdup(constCharPointerValue);
}
- (void)setObjectValue:(id)objectValue andIntegerValue:(NSInteger)integerValue {
self.hasInvokedSetObjectValueAndIntegerValue = YES;
self.objectValue = objectValue;
self.integerValue = integerValue;
}
- (void)setObjectValue:(id)objectValue andSecondObjectValue:(id)secondObjectValue {
self.hasInvokedSetObjectValueAndSecondObjectValue = YES;
self.objectValue = objectValue;
self.secondObjectValue = secondObjectValue;
}
- (void)setSlowObjectValue:(id)value {
[NSThread sleepForTimeInterval:0.02];
_slowObjectValue = value;
}
- (NSString *)combineObjectValue:(id)objectValue andIntegerValue:(NSInteger)integerValue {
return [NSString stringWithFormat:@"%@: %ld", objectValue, (long)integerValue];
}
- (NSString *)combineObjectValue:(id)objectValue andSecondObjectValue:(id)secondObjectValue {
return [NSString stringWithFormat:@"%@: %@", objectValue, secondObjectValue];
}
- (void)lifeIsGood:(id)sender {
}
+ (void)lifeIsGood:(id)sender {
}
- (NSRange)returnRangeValueWithObjectValue:(id)objectValue andIntegerValue:(NSInteger)integerValue {
return NSMakeRange((NSUInteger)[objectValue integerValue], (NSUInteger)integerValue);
}
- (RACTestObject *)dynamicObjectProperty {
return [self dynamicObjectMethod];
}
- (RACTestObject *)dynamicObjectMethod {
RACTestObject *testObject = [[RACTestObject alloc] init];
testObject.integerValue = 42;
return testObject;
}
- (void)write5ToIntPointer:(int *)intPointer {
NSCParameterAssert(intPointer != NULL);
*intPointer = 5;
}
- (NSInteger)doubleInteger:(NSInteger)integer {
return integer * 2;
}
- (char *)doubleString:(char *)string {
size_t doubledSize = strlen(string) * 2 + 1;
char *doubledString = malloc(sizeof(char) * doubledSize);
doubledString[0] = '\0';
strlcat(doubledString, string, doubledSize);
strlcat(doubledString, string, doubledSize);
dispatch_async(dispatch_get_main_queue(), ^{
free(doubledString);
});
return doubledString;
}
- (const char *)doubleConstString:(const char *)string {
return [self doubleString:(char *)string];
}
- (RACTestStruct)doubleStruct:(RACTestStruct)testStruct {
testStruct.integerField *= 2;
testStruct.doubleField *= 2;
return testStruct;
}
- (dispatch_block_t)wrapBlock:(dispatch_block_t)block {
return ^{
block();
};
}
@end