Singletones in Objective-C for storing and accessing system-wide variables. A few questions

I use the Apple MyGizmoClass Singleton class for "session variables" for the entire program and love it! However, when I run Build and Analyze, it gives strange results. Maybe my use is wrong (it works, but it may work because of the flake effect). Here is an example.

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {

    int ct = 0;
    MyGizmoClass *myGizmoClass= [MyGizmoClass sharedManager];
    ct = [[myGizmoClass searchResultsForResortLocation] count];
    [myGizmoClass release];
    NSLog(@"ct: %d",ct);
    return ct;
}

or

- (void)viewWillAppear:(BOOL)animated {


     // Uncomment the following line to display an Edit button in the navigation bar for this view controller.
     //self.navigationItem.rightBarButtonItem = self.editButtonItem;

    NSMutableString *which_resort = [[NSMutableString alloc] init];
    NSMutableString *category_code = [[NSMutableString alloc] init];
    MyGizmoClass *myGizmoClass= [MyGizmoClass sharedManager];

    ...

    which_resort = [self which_resort_location_are_we_in];

    ... 
    [myGizmoClass setWhich_resort:which_resort];

    int useDebugMode = [myGizmoClass useDebugMode]; 

    ...


    [myGizmoClass release];

    [which_resort release];
    [category_code release];

    [super viewWillAppear:animated];

}

Again, this use may be disabled, but I thought that every method I used was a singleton value I had to do:

MyGizmoClass *myGizmoClass= [MyGizmoClass sharedManager];

and

[myGizmoClass release];

BUT I get these errors during the analysis:

/Users/jgobble/Documents/ProgramName/Classes/ResortsListViewController.m:495:2 - /Users/jgobble/Documents/ProgramName/Classes/ResortsListViewController.m:493:30 Objective-C +0 ( ) /Users/jgobble/Documents/ProgramName/Classes/ResortsListViewController.m:495:2 -

, , : :

MyGizmoClass *myGizmoClass= [MyGizmoClass sharedManager];

" ", :

[myGizmoClass release];

PRIOR ( .

, ?

, ( ) . , . , .

, : * myGizmoClass? - ?

-(void) function_a {
     MyGizmoClass *myGizmoClass= [MyGizmoClass sharedManager];

     [myGizmoClass setC:1];

     int result_b = [self function_b];

     printf("Addition result is: %d", result_b);

     [myGizmoClass release]
}

-(int) function_b {
     MyGizmoClass *myGizmoClass= [MyGizmoClass sharedManager];

     int b = 0;

     b = b + [myGizmoClass c];

     [myGizmoClass release]

     return b;
}

( )

, - MyGizmoClass * myGizmoclass= [MyGizmoClass sharedManager]; _b, MyGizmoClass * myGizmoclass= [MyGizmoClass sharedManager]; _a?

+3
2

, . , retain release , , , Apple , . , Cocoa.

, Analyzer , " " ; , [MyGizmoClass sharedManager], ( Cocoa ).

+5

myGizmoClass. [MyGizmoClass sharedManager], . , , , .

Apple, Objective-C.

0

Source: https://habr.com/ru/post/1731600/


All Articles