2017-11-06 4 views
-1

私は整数の変数がページと呼ばれ、最初の時点で、その値が1整数変数の宣言、初期化、および整数変数の増分値の呼び出し方法は、何度も何度も呼び出されますか?

私はそれを使用したい、sampleViewcontroller.mファイルにリロード方法で

// sampleViewcontroller.m 

     - (void)viewDidLoad { 

     [self method1]; 
     } 

     -(void) method1 
     { 

     // Here I am calling one API 

     [self reload]; 

     } 

     -(void)reload 
     { 

     // Here I want to use that page value, whenever this method is called, that value should be incremented by one. 
     // and that page value I am passing as a parameter to another method, see below 

     MyWebservices *webservices=[MyWebservices sharedInstance]; 

       [webservices getNextPageURL:_nextPageUrl pageValue:page callbackHandler:^(NSError *error,id json,NSString* msg) { 

      // some code 

      } 

     } 

をサンプルコードを参照してくださいになりたい考えてみましょうページ値、およびパラメータとして法の下に渡したい、

[webservices getNextPageURL:_nextPageUrl pageValue:page callbackHandler:^(NSError *error,id json,NSString* msg) 

とリロード方法がCAのときたびに呼び出されWebservices.mファイルに記述されているメソッド定義、だまされた。ここでは、毎回そのページの値を取得し、増加するとそのページを次のAPIコールに使用したいと考えています。

// Webservices.m file 

     -(void)getNextPageURL:(NSString*)url pageValue:(NSInteger)page callbackHandler:(callbackHandler)block{ 
      _userDefaults=[NSUserDefaults standardUserDefaults]; 

      // I want to print this page value (which is incrementing every time) 
      NSLog(@"Page value is : %@",page); // incremented value 
      NSString *urll=[NSString stringWithFormat:@"%@&api_key=%@&ip=%@&token=%@&page=%@",url,API_KEY,IP,[_userDefaults objectForKey:@"token"],page]; 

      [self httpResponseGET:urll parameter:@"" callbackHandler:^(NSError *error,id json,NSString* msg) { 
       dispatch_async(dispatch_get_main_queue(), ^{ 
        block(error,json,msg); 
       }); 

      }]; 

     } 

ので、私はそれをするたびにインクリメントされた値になりますので、この方法以下にリロード方法からページ値を渡したいです。

-(void)getNextPageURL:(NSString*)url pageValue:(NSInteger)page callbackHandler:(callbackHandler)block 

答えて

0

あなたの.hファイルに次の書き込み:

@property (nonatomic) NSInteger page; 

今の.mファイルに

- (void)viewDidLoad { 

self.page = 1; // as you initially want page value to be 1. 
[self method1]; 
} 

-(void) method1 
{ 

// Here I am calling one API 
self.page = page + 1; // as you want to increment the value of page when before function is called 
[self reload]; 
} 

-(void)reload 
    { 

    // Here I want to use that page value, whenever this method is called, that value should be incremented by one. 
    // and that page value I am passing as a parameter to another method, see below 

    MyWebservices *webservices=[MyWebservices sharedInstance]; 

      [webservices getNextPageURL:_nextPageUrl pageValue:self.page callbackHandler:^(NSError *error,id json,NSString* msg) { 

     // some code 

     } 

    } 
+0

それは私の作品...!ありがとう@ kadian。 –

+0

実際には、上記のメソッドが呼び出される前にページ値をインクリメントしたいので、これは正しいです。[webservices getNextPageURL:_nextPageUrl pageValue:self.page callbackHandler:^(NSError * error、id json、NSString * msg) –

0

あなたのクラスのプライベートプロパティを保持するだけです。

@interface SampleViewcontroller() 

@property (nonatomic) NSInteger page; 

@end 

@implementation 

- (void)viewDidLoad { 
    self.page = 0; 
    [self method1]; 
} 

-(void) method1 
{ 

    // Here I am calling one API 

    [self reload]; 

} 

-(void)reload 
{ 

    // Here I want to use that page value, whenever this method is called, that value should be incremented by one. 
    // and that page value I am passing as a parameter to another method, see below 

    MyWebservices *webservices=[MyWebservices sharedInstance];  
    [webservices getNextPageURL:_nextPageUrl pageValue:self.page callbackHandler:^(NSError *error,id json,NSString* msg) { 

     // some code 
     if (!error) { 
      //If success 
      self.page++; 
     } 
    } 

}   
@end 
0
You don't need to add a property, just add a private variable using anyone from the following ways: 

    1. In .h file: 

    @interface ViewController : UIViewController { 

     NSInteger page; 
    } 

    OR 
    2. In .m file: 


    @interface ViewController() 
    @end 

    @implementation ViewController 

    NSInteger page; 

    // Now use the page variable in .m file: 

    - (void)viewDidLoad { 

     [self method1]; 
     } 

     -(void) method1 
     { 

     // Here I am calling one API 

     [self reload]; 

     } 

     -(void)reload 
     { 

     // Here I want to use that page value, whenever this method is called, that value should be incremented by one. 
     // and that page value I am passing as a parameter to another method, see below 

     MyWebservices *webservices=[MyWebservices sharedInstance]; 

       [webservices getNextPageURL:_nextPageUrl pageValue:page callbackHandler:^(NSError *error,id json,NSString* msg) { 

      // some code 

      page ++; 

      } 

     } 
関連する問題