Not reading data from the array always displaying no preference

Hi all I am currently working on an iPhone application. The application is for a an estate agent, and the app reads information in from a feed. The client is able to have various options on the app which allows them to select a community then a sub community. Obviously I can't have all of the sub communities displayed in one go because they only exist in certain communities. So what i was trying to do was the following : Here is a snippet of my code from the URL Query generator: The following is for the community.

[urlString appendString:@"&Tier1_ID="];
            switch ([_appDelegate int_Tier1_ID]) {
                case 0: [urlString appendString:@"0"]; break;//No preference
                case 1: [urlString appendString:@"190"]; break;
                case 2: [urlString appendString:@"85"]; break;
                case 3: [urlString appendString:@"88"]; break;
                case 4: [urlString appendString:@"89"]; break;

And here is what i am trying to do in the URLQueryGenerator for the Sub community:

        [urlString appendString:@"&Tier2_ID="];
        switch ([_appDelegate int_Tier1_ID]) {

            case 0: [urlString appendString:@"0"]; break;

            case 1:switch (_appDelegate.int_Tier2_ID){
                case 0: [urlString appendString:@"0"];break;
            case 1: [urlString appendString:@"200"]; break;
            case 2: [urlString appendString:@"201"]; break;
            case 3: [urlString appendString:@"202"]; break;
            case 4: [urlString appendString:@"203"]; break;
            case 5: [urlString appendString:@"204"]; break;
            case 6: [urlString appendString:@"205"]; break;
            case 7: [urlString appendString:@"206"]; break;
            case 8: [urlString appendString:@"207"]; break;
            }break;

            case 2:switch (_appDelegate.int_Tier2_ID){
                case 0: [urlString appendString:@"0"];break;
                case 1: [urlString appendString:@"285"]; break;
                case 2: [urlString appendString:@"286"]; break;
                case 3: [urlString appendString:@"287"]; break;
                case 4: [urlString appendString:@"288"]; break;
                case 5: [urlString appendString:@"289"]; break;
                case 6: [urlString appendString:@"290"]; break;
                case 7: [urlString appendString:@"408"]; break;
                case 8: [urlString appendString:@"291"]; break;
                case 9: [urlString appendString:@"292"]; break;
                case 10: [urlString appendString:@"293"]; break;
                case 11: [urlString appendString:@"403"]; break;
                case 12: [urlString appendString:@"294"]; break;
                case 13: [urlString appendString:@"295"]; break;
                case 14: [urlString appendString:@"296"]; break;
                case 15: [urlString appendString:@"297"]; break;
                case 16: [urlString appendString:@"298"]; break;
                case 17: [urlString appendString:@"309"]; break;
                case 18: [urlString appendString:@"299"]; break;
                case 19: [urlString appendString:@"402"]; break;
                case 20: [urlString appendString:@"300"]; break;
                case 21: [urlString appendString:@"301"]; break;
                case 22: [urlString appendString:@"406"]; break;
                case 23: [urlString appendString:@"302"]; break;
                case 24: [urlString appendString:@"308"]; break;
                default:[urlString appendString:@"0"]; break;
            }break;
            default:[urlString appendString:@"0"]; break;
        }

Here is a snippet of the subcommuinity delegate:

FindPropertyAppDelegate  * _appDelegate = [[UIApplication sharedApplication] delegate];
    NSArray* array;

    switch (_appDelegate.int_Tier1_ID) {
        case 0:
            array = [[NSArray alloc] initWithObjects:
                     NSLocalizedString(@"No Preference", nil),

                     nil];
            break;
        case 1://DIFC
            array = [[NSArray alloc] initWithObjects:
                     NSLocalizedString(@"No Preference", nil),
                     @"Central Park Tower",
                     @"Currency House",
                     @"DIFC",
                     @"DIFC",
                     @"DIFC Tower",
                     @"Emirates Financial Towers",
                     @"Gate Boulevard",
                     @"Park Towers",
                     @"The Gate Precint",
                     nil];
            break;
        case2://Dubai Marina
            array = [[NSArray alloc] initWithObjects:
                     NSLocalizedString(@"No Preference", nil),
                     @"Al Atina",
                     @"Al Fattan Marine",
                     @"Al Majara",
                     @"Al Marjan Villas",
                     @"Al Sahab",
                     @"Bay Central",

However when i click on the picker it always only displays "No Preference".

The user should get the relevant results when they choose a community.

Can any one help I'm so confused.

Thank you.

Answers


Whatever your base problem is, your going to spin yourself into more trouble then you deserve by writing code this way. It's probably an anti-pattern to use AppDelegate as a dumping ground for just any random thing. And based on what little I can glean from your example, you should probably be creating a new class

@interface FeedInfo

// set these
@property (nonatomic) NSUInteger tier1ID;    
@property (nonatomic) NSUInteger tier2ID;

// and then get these
@property (readonly) NSString *urlString;
@property (readonly) NSArray *subCommunities;

@end

You could then break some of your multiple nested switch statements into single methods inside your implementation, which you can compose internally into your urlString.

If you learn the standards of how to program in Objective-C, you'll probably be saving yourself pain in the long run. I understand, that may not put the product in the hands of your client quickly (this time... possibly), but it will improve the quality of what they do get immensely.


Need Your Help

Xcode 4 fails to load plug-in

xcode osx plugins

With XCode 4.0.2, i have build a plug-in, that was previously working with XCode 3.2, I installed my plug-in in "~/Library/Application\ Support/Developer/Shared/Xcode/Plug-ins/"

Encapsulate event subscriber synchronization code with helper routine

c# events delegates synchronization subscriber

I am trying to wrap the code needed to iterate through the subscriber list of an event delegate into a static helper routine, so that I don't need to copy/paste the same code for many event handler...

About UNIX Resources Network

Original, collect and organize Developers related documents, information and materials, contains jQuery, Html, CSS, MySQL, .NET, ASP.NET, SQL, objective-c, iPhone, Ruby on Rails, C, SQL Server, Ruby, Arrays, Regex, ASP.NET MVC, WPF, XML, Ajax, DataBase, and so on.