2013-10-04 4 views
2

Я использую соединение multipeer для отправки файла на bluetooth. Прогресс сохраняется в переменной под названием Progress:отслеживать изменения в NSProgress с помощью Multipeer Connectivity

NSProgress* progress; 

и доступ таким образом:

progress.fractionCompleted 

Как я могу вызвать метод, чтобы обновить мой UIprogressBar, когда число изменений?

Существует метод:

-(void)session:(MCSession *)session didStartReceivingResourceWithName:(NSString *)resourceName fromPeer:(MCPeerID *)peerID withProgress:(NSProgress *)progress 

{ 
NSLog(@"RECEIVING... %@ from peer: %@", progress, peerID); 

} 

Но это вызывается только один раз ...

ответ

3

Вы можете использовать КВО на fractionCompleted что-то вроде этого

[_progress addObserver:self 
     forKeyPath:@"fractionCompleted" 
      options:NSKeyValueObservingOptionNew 
      context:NULL]; 

Затем переопределить observeValueForKeyPath

- (void)observeValueForKeyPath:(NSString *)keyPath 
          ofObject:(id)object 
          change:(NSDictionary *)change 
          context:(void *)context 
    { 
     if (object == _progress) { 
      // Handle new fractionCompleted value 
      return; 
     } 

    [super observeValueForKeyPath:keyPath 
        ofObject:object 
         change:change 
         context:context]; 
} 

Вы можете проверить блог Matt для получения более подробной информации http://www.raywenderlich.com/49850/whats-new-in-objective-c-and-foundation-in-ios-7

Смежные вопросы