Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Converted to ARC #43

Open
wants to merge 4 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 3 additions & 3 deletions Classes/DetailViewController.h
Original file line number Diff line number Diff line change
Expand Up @@ -22,9 +22,9 @@
UILabel *detailDescriptionLabel;
}

@property (nonatomic, retain) IBOutlet UIToolbar *toolbar;
@property (nonatomic, retain) id detailItem;
@property (nonatomic, retain) IBOutlet UILabel *detailDescriptionLabel;
@property (nonatomic, strong) IBOutlet UIToolbar *toolbar;
@property (nonatomic, strong) id detailItem;
@property (nonatomic, strong) IBOutlet UILabel *detailDescriptionLabel;

- (IBAction)toggleMasterView:(id)sender;
- (IBAction)toggleVertical:(id)sender;
Expand Down
16 changes: 2 additions & 14 deletions Classes/DetailViewController.m
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@

@interface DetailViewController ()

@property (nonatomic, retain) UIPopoverController *popoverController;
@property (nonatomic, strong) UIPopoverController *popoverController;
- (void)configureView;

@end
Expand All @@ -32,8 +32,7 @@ @implementation DetailViewController
- (void)setDetailItem:(id)newDetailItem
{
if (detailItem != newDetailItem) {
[detailItem release];
detailItem = [newDetailItem retain];
detailItem = newDetailItem;

// Update the view.
[self configureView];
Expand Down Expand Up @@ -72,7 +71,6 @@ - (void)splitViewController:(MGSplitViewController*)svc
NSMutableArray *items = [[toolbar items] mutableCopy];
[items insertObject:barButtonItem atIndex:0];
[toolbar setItems:items animated:YES];
[items release];
}
self.popoverController = pc;
}
Expand All @@ -89,7 +87,6 @@ - (void)splitViewController:(MGSplitViewController*)svc
NSMutableArray *items = [[toolbar items] mutableCopy];
[items removeObject:barButtonItem];
[toolbar setItems:items animated:YES];
[items release];
}
self.popoverController = nil;
}
Expand Down Expand Up @@ -172,15 +169,6 @@ - (void)didRotateFromInterfaceOrientation:(UIInterfaceOrientation)fromInterfaceO
}


- (void)dealloc
{
[popoverController release];
[toolbar release];

[detailItem release];
[detailDescriptionLabel release];
[super dealloc];
}


@end
6 changes: 3 additions & 3 deletions Classes/MGSplitCornersView.h
Original file line number Diff line number Diff line change
Expand Up @@ -18,14 +18,14 @@ typedef enum _MGCornersPosition {
@class MGSplitViewController;
@interface MGSplitCornersView : UIView {
float cornerRadius;
MGSplitViewController *splitViewController;
MGSplitViewController *__unsafe_unretained splitViewController;
MGCornersPosition cornersPosition;
UIColor *cornerBackgroundColor;
}

@property (nonatomic, assign) float cornerRadius;
@property (nonatomic, assign) MGSplitViewController *splitViewController; // weak ref.
@property (nonatomic, unsafe_unretained) MGSplitViewController *splitViewController; // weak ref.
@property (nonatomic, assign) MGCornersPosition cornersPosition; // don't change this manually; let the splitViewController manage it.
@property (nonatomic, retain) UIColor *cornerBackgroundColor;
@property (nonatomic, strong) UIColor *cornerBackgroundColor;

@end
4 changes: 1 addition & 3 deletions Classes/MGSplitCornersView.m
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,6 @@ - (void)dealloc
{
self.cornerBackgroundColor = nil;

[super dealloc];
}


Expand Down Expand Up @@ -225,8 +224,7 @@ - (void)setCornersPosition:(MGCornersPosition)posn
- (void)setCornerBackgroundColor:(UIColor *)color
{
if (color != cornerBackgroundColor) {
[cornerBackgroundColor release];
cornerBackgroundColor = [color retain];
cornerBackgroundColor = color;
[self setNeedsDisplay];
}
}
Expand Down
4 changes: 2 additions & 2 deletions Classes/MGSplitDividerView.h
Original file line number Diff line number Diff line change
Expand Up @@ -10,11 +10,11 @@

@class MGSplitViewController;
@interface MGSplitDividerView : UIView {
MGSplitViewController *splitViewController;
MGSplitViewController* __unsafe_unretained splitViewController;
BOOL allowsDragging;
}

@property (nonatomic, assign) MGSplitViewController *splitViewController; // weak ref.
@property (nonatomic, unsafe_unretained) MGSplitViewController *splitViewController; // weak ref.
@property (nonatomic, assign) BOOL allowsDragging;

- (void)drawGripThumbInRect:(CGRect)rect;
Expand Down
1 change: 0 additions & 1 deletion Classes/MGSplitDividerView.m
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,6 @@ - (id)initWithFrame:(CGRect)frame
- (void)dealloc
{
self.splitViewController = nil;
[super dealloc];
}


Expand Down
8 changes: 4 additions & 4 deletions Classes/MGSplitViewAppDelegate.h
Original file line number Diff line number Diff line change
Expand Up @@ -19,10 +19,10 @@
DetailViewController *detailViewController;
}

@property (nonatomic, retain) IBOutlet UIWindow *window;
@property (nonatomic, strong) IBOutlet UIWindow *window;

@property (nonatomic, retain) IBOutlet MGSplitViewController *splitViewController;
@property (nonatomic, retain) IBOutlet RootViewController *rootViewController;
@property (nonatomic, retain) IBOutlet DetailViewController *detailViewController;
@property (nonatomic, strong) IBOutlet MGSplitViewController *splitViewController;
@property (nonatomic, strong) IBOutlet RootViewController *rootViewController;
@property (nonatomic, strong) IBOutlet DetailViewController *detailViewController;

@end
7 changes: 0 additions & 7 deletions Classes/MGSplitViewAppDelegate.m
Original file line number Diff line number Diff line change
Expand Up @@ -35,13 +35,6 @@ - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(
}


- (void)dealloc
{
[splitViewController release];
[window release];

[super dealloc];
}


@end
Expand Down
8 changes: 4 additions & 4 deletions Classes/MGSplitViewController.h
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@ typedef enum _MGSplitViewDividerStyle {
MGSplitViewDividerStyle _dividerStyle; // Meta-setting which configures several aspects of appearance and behaviour.
}

@property (nonatomic, assign) IBOutlet id <MGSplitViewControllerDelegate> delegate;
@property (nonatomic, unsafe_unretained) IBOutlet id <MGSplitViewControllerDelegate> delegate;
@property (nonatomic, assign) BOOL showsMasterInPortrait; // applies to both portrait orientations (default NO)
@property (nonatomic, assign) BOOL showsMasterInLandscape; // applies to both landscape orientations (default YES)
@property (nonatomic, assign, getter=isVertical) BOOL vertical; // if NO, split is horizontal, i.e. master above detail (default YES)
Expand All @@ -43,9 +43,9 @@ typedef enum _MGSplitViewDividerStyle {
@property (nonatomic, assign) BOOL allowsDraggingDivider; // whether to let the user drag the divider to alter the split position (default NO).

@property (nonatomic, copy) NSArray *viewControllers; // array of UIViewControllers; master is at index 0, detail is at index 1.
@property (nonatomic, retain) IBOutlet UIViewController *masterViewController; // convenience.
@property (nonatomic, retain) IBOutlet UIViewController *detailViewController; // convenience.
@property (nonatomic, retain) MGSplitDividerView *dividerView; // the view which draws the divider/split between master and detail.
@property (nonatomic, strong) IBOutlet UIViewController *masterViewController; // convenience.
@property (nonatomic, strong) IBOutlet UIViewController *detailViewController; // convenience.
@property (nonatomic, strong) MGSplitDividerView *dividerView; // the view which draws the divider/split between master and detail.
@property (nonatomic, assign) MGSplitViewDividerStyle dividerStyle; // style (and behaviour) of the divider between master and detail.

@property (nonatomic, readonly, getter=isLandscape) BOOL landscape; // returns YES if this view controller is in either of the two Landscape orientations, else NO.
Expand Down
25 changes: 6 additions & 19 deletions Classes/MGSplitViewController.m
Original file line number Diff line number Diff line change
Expand Up @@ -149,13 +149,7 @@ - (void)dealloc
{
_delegate = nil;
[self.view.subviews makeObjectsPerformSelector:@selector(removeFromSuperview)];
[_viewControllers release];
[_barButtonItem release];
[_hiddenPopoverController release];
[_dividerView release];
[_cornerViews release];

[super dealloc];
}


Expand Down Expand Up @@ -432,8 +426,6 @@ - (void)layoutSubviewsForInterfaceOrientation:(UIInterfaceOrientation)theOrienta
trailingCorners.cornerBackgroundColor = MG_DEFAULT_CORNER_COLOR;
trailingCorners.cornerRadius = MG_DEFAULT_CORNER_RADIUS;
_cornerViews = [[NSArray alloc] initWithObjects:leadingCorners, trailingCorners, nil];
[leadingCorners release];
[trailingCorners release];

} else if ([_cornerViews count] == 2) {
leadingCorners = [_cornerViews objectAtIndex:0];
Expand Down Expand Up @@ -554,7 +546,6 @@ - (void)reconfigureForMasterInPopover:(BOOL)inPopover

if (inPopover && !_hiddenPopoverController && !_barButtonItem) {
// Create and configure popover for our masterViewController.
[_hiddenPopoverController release];
_hiddenPopoverController = nil;
[self.masterViewController viewWillDisappear:NO];
_hiddenPopoverController = [[UIPopoverController alloc] initWithContentViewController:self.masterViewController];
Expand All @@ -580,7 +571,6 @@ - (void)reconfigureForMasterInPopover:(BOOL)inPopover

// Remove master from popover and destroy popover, if it exists.
[_hiddenPopoverController dismissPopoverAnimated:NO];
[_hiddenPopoverController release];
_hiddenPopoverController = nil;

// Inform delegate that the _barButtonItem will become invalid.
Expand All @@ -591,7 +581,6 @@ - (void)reconfigureForMasterInPopover:(BOOL)inPopover
}

// Destroy _barButtonItem.
[_barButtonItem release];
_barButtonItem = nil;

// Move master view.
Expand Down Expand Up @@ -906,7 +895,7 @@ - (void)setSplitWidth:(float)width

- (NSArray *)viewControllers
{
return [[_viewControllers copy] autorelease];
return [_viewControllers copy];
}


Expand All @@ -918,7 +907,6 @@ - (void)setViewControllers:(NSArray *)controllers
[controller.view removeFromSuperview];
}
}
[_viewControllers release];
_viewControllers = [[NSMutableArray alloc] initWithCapacity:2];
if (controllers && [controllers count] >= 2) {
self.masterViewController = [controllers objectAtIndex:0];
Expand All @@ -937,7 +925,7 @@ - (UIViewController *)masterViewController
if (_viewControllers && [_viewControllers count] > 0) {
NSObject *controller = [_viewControllers objectAtIndex:0];
if ([controller isKindOfClass:[UIViewController class]]) {
return [[controller retain] autorelease];
return controller;
}
}

Expand Down Expand Up @@ -979,7 +967,7 @@ - (UIViewController *)detailViewController
if (_viewControllers && [_viewControllers count] > 1) {
NSObject *controller = [_viewControllers objectAtIndex:1];
if ([controller isKindOfClass:[UIViewController class]]) {
return [[controller retain] autorelease];
return controller;
}
}

Expand Down Expand Up @@ -1014,16 +1002,15 @@ - (void)setDetailViewController:(UIViewController *)detail

- (MGSplitDividerView *)dividerView
{
return [[_dividerView retain] autorelease];
return _dividerView;
}


- (void)setDividerView:(MGSplitDividerView *)divider
{
if (divider != _dividerView) {
[_dividerView removeFromSuperview];
[_dividerView release];
_dividerView = [divider retain];
_dividerView = divider;
_dividerView.splitViewController = self;
_dividerView.backgroundColor = MG_DEFAULT_CORNER_COLOR;
if ([self isShowingMaster]) {
Expand Down Expand Up @@ -1109,7 +1096,7 @@ - (void)setDividerStyle:(MGSplitViewDividerStyle)newStyle animated:(BOOL)animate
- (NSArray *)cornerViews
{
if (_cornerViews) {
return [[_cornerViews retain] autorelease];
return _cornerViews;
}

return nil;
Expand Down
2 changes: 1 addition & 1 deletion Classes/RootViewController.h
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@
DetailViewController *detailViewController;
}

@property (nonatomic, retain) IBOutlet DetailViewController *detailViewController;
@property (nonatomic, strong) IBOutlet DetailViewController *detailViewController;

- (void)selectFirstRow;

Expand Down
7 changes: 1 addition & 6 deletions Classes/RootViewController.m
Original file line number Diff line number Diff line change
Expand Up @@ -70,7 +70,7 @@ - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(N
// Dequeue or create a cell of the appropriate type.
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier] autorelease];
cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier];
cell.accessoryType = UITableViewCellAccessoryNone;
}

Expand All @@ -95,11 +95,6 @@ - (void)tableView:(UITableView *)aTableView didSelectRowAtIndexPath:(NSIndexPath
#pragma mark Memory management


- (void)dealloc
{
[detailViewController release];
[super dealloc];
}


@end
5 changes: 5 additions & 0 deletions MGSplitView.xcodeproj/project.pbxproj
Original file line number Diff line number Diff line change
Expand Up @@ -176,6 +176,7 @@
isa = PBXProject;
buildConfigurationList = C01FCF4E08A954540054247B /* Build configuration list for PBXProject "MGSplitView" */;
compatibilityVersion = "Xcode 3.2";
developmentRegion = English;
hasScannedForEncodings = 1;
knownRegions = (
English,
Expand Down Expand Up @@ -227,6 +228,7 @@
isa = XCBuildConfiguration;
buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO;
CLANG_ENABLE_OBJC_ARC = YES;
COPY_PHASE_STRIP = NO;
GCC_DYNAMIC_NO_PIC = NO;
GCC_OPTIMIZATION_LEVEL = 0;
Expand All @@ -242,6 +244,7 @@
isa = XCBuildConfiguration;
buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO;
CLANG_ENABLE_OBJC_ARC = YES;
COPY_PHASE_STRIP = YES;
GCC_PRECOMPILE_PREFIX_HEADER = YES;
GCC_PREFIX_HEADER = MGSplitView_Prefix.pch;
Expand All @@ -260,6 +263,7 @@
GCC_C_LANGUAGE_STANDARD = c99;
GCC_WARN_ABOUT_RETURN_TYPE = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
IPHONEOS_DEPLOYMENT_TARGET = 4.0;
PREBINDING = NO;
SDKROOT = iphoneos3.2;
TARGETED_DEVICE_FAMILY = 2;
Expand All @@ -274,6 +278,7 @@
GCC_C_LANGUAGE_STANDARD = c99;
GCC_WARN_ABOUT_RETURN_TYPE = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
IPHONEOS_DEPLOYMENT_TARGET = 4.0;
OTHER_CFLAGS = "-DNS_BLOCK_ASSERTIONS=1";
PREBINDING = NO;
SDKROOT = iphoneos3.2;
Expand Down
2 changes: 2 additions & 0 deletions README.markdown
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,8 @@ MGSplitViewController

MGSplitViewController is a replacement for UISplitViewController, with various useful enhancements.

[_This fork replaces manual reference counting with ARC, as implemented by Clang in Xcode4.2 and later_ - Dafydd Williams]


Donations
---------
Expand Down
8 changes: 4 additions & 4 deletions main.m
Original file line number Diff line number Diff line change
Expand Up @@ -10,8 +10,8 @@

int main(int argc, char *argv[]) {

NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];
int retVal = UIApplicationMain(argc, argv, nil, nil);
[pool release];
return retVal;
@autoreleasepool {
int retVal = UIApplicationMain(argc, argv, nil, nil);
return retVal;
}
}