Archive | CocoaCoder RSS feed for this section

How to switch the code/build for the device or simulator

“My Pacakge” uses AdMob library but AdMob library is not compatible with iOS 4 simulator (so many linking error occurrs). I found the way to avoid these errors in the apple document. Switching code with preprocessor macros is the answer.

Leave a comment Continue Reading →

How to trigger MKAnnotationView’s callout view without touching the pin? – Stack Overflow

But there is a catch to get benvolioT's solution to work, the code

for (id currentAnnotation in mapView.annotations) {
  if ([currentAnnotation isEqual:annotationToSelect]) {
    [mapView selectAnnotation:currentAnnotation animated:FALSE];
  }
}
Leave a comment Continue Reading →

Functions for CGRect

In the cocoa (cocoa touch) framework, CGRect structure are used in many places because its rendering system depends on Core Graphics library. Here are the useful functions for CGRect structure.

Leave a comment Continue Reading →

How to change the carrier name in the iPhone simulator

iPhone simulator shows “Carrier” as default carrier name. You can change this name whatever text you want.

Leave a comment Continue Reading →

Open URL from application

Pretty simple. This call terminates the application and starts Mobile Safari browser with specified URL.

  [[UIApplication sharedApplication] openURL: [NSURL URLWithString: @"http://www.apple.com/"]];
Leave a comment Continue Reading →

How to define private methods … sort of

There is no private or protected methods concept in Objective-C. I think it is related to the architecture of invoking method in Objective-C. Each method is invoked like [self method] style or [self performSelector:@selector(method)]. Internally, Objective-C runtime resolves method implementation by searching method name. This architecture gives flexibility to call method and also allows to have “category” but it is hard to support private method.

Leave a comment Continue Reading →

How to remember the setting (user defaults) easily

NSUserDefautls object automatically loads and saves small information. Along with primitive value like BOOL, integer or float, NSUserDefaults can handle objects like NSArray, NSData, NSDictionary, NSString.

// Save a default
[[NSUserDefaults standardUserDefaults] setObject:@"NO" forKey:@"ShowWarning"];

// Read  BOOL warning value from NSUserDefaults
BOOL showWarning = [[NSUserDefaults standardUserDefaults] boolForKey:@"ShowWarning"];
Leave a comment Continue Reading →

Capture view contents into an UIImage object

By combining UIGraphicsBeginImageContext() and -renderInContext in CALayer, you can draw contents into a image (UIImage) object. It is like screen capture.

UIGraphicsBeginImageContext(view.frame.size);
[view.layer renderInContext:UIGraphicsGetCurrentContext()];
UIImage *image = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
Leave a comment Continue Reading →

Set border around the view

There is no border property in UIView…. classes but we can access CALayer class to set border. Since layer property is defined in the UIView class, all of UIView inherited class can use this property to set border. It needs to have #import <QuartzCore/QuartzCore.h> to access CALayer.

view.layer.borderWidth = 1;
view.layer.borderColor = [[UIColor grayColor] CGColor];
Leave a comment Continue Reading →

Calling selectors with multiple arguments – Stack Overflow

In Objective-C, a selector’s signature consists of:

  1. The name of the method (in this case it would be ‘myTest’) (required)
  2. A ‘;’ (colon) following the method name if the method has an input.
  3. A name and ‘:’ for every additional input.
Leave a comment Continue Reading →