- (void)accessArrayObject:(NSArray*)object { NSString* value = @"tempt"; value = [object objectAtIndex:10]; [self displayAlertView:@"Keep Running" message:[NSString stringWithFormat:@"Value:%@",value]]; } - (void)accessDictionaryObject:(NSDictionary*)object { NSString* value = @"tempt"; value = [object objectForKey:@"Key"]; [self displayAlertView:@"Keep Running" message:[NSString stringWithFormat:@"Value:%@",value]]; } - (void)accessOtherObject:(PCObject*)object { //PCObject NSString* value1 = @"tempt"; NSString* value2 = @"tempt"; NSString* value3 = @"tempt"; value1 = [object name]; NSLog(@"1:%@",value1); // value1 = object->publicValue; // Crash app // NSLog(@"1:%@",value1); [object setName:@"LocalValue"]; object.name = @"OtherValue"; value2 = object.name; NSLog(@"2:%@",value2); PCObject* localObject = [[PCObject alloc] initWithPCObject:object]; value3 = localObject.name; NSLog(@"3:%@",value3); [self displayAlertView:@"Keep Running" message:[NSString stringWithFormat:@"Value1:%@ - Value2:%@ - Value3:%@",value1,value2,value3]]; } - (IBAction)clickOnSession3Button:(id)sender { @try { switch (self.session3Segment.selectedSegmentIndex) { case 0: { //Case1: Array NSArray* nilArray = nil; [self accessArrayObject:nilArray]; break; } case 1: { //Case2: Dictionary NSDictionary* nilDictionary = nil; [self accessDictionaryObject:nilDictionary]; break; } case 2: { //Case3: Object PCObject* nilObject = nil; [self accessOtherObject:nilObject]; break; } default: break; } } @catch (NSException *exception) { NSLog(@"%@",exception); [self displayAlertView:exception.name message:exception.reason]; } @finally { } }