Herhangi bir argüman **
olarak verildiği zaman, işaretçiyi işaretçiyi var olan bir nesneye, normal nesneye göre gerçek nesneye değil, bir işaretçiye iletmeniz gerektiği anlamına gelir.
Bu durumda, bir işaretçiyi bir işaretçiye NSProgress
nesnesine iletir ve ardından güncelleştirmeleri almak için bu nesnedeki değişiklikleri gözlemlersiniz.
Örnek:
// Create a progress object and pass it in
NSProgress *progress;
[sessionManager uploadTaskWithRequest:request fromFile:fileURL progress:&progress completionHandler:^(NSURLResponse *response, id responseObject, NSError *error) {
// Completion code
}];
// Observe fractionCompleted using KVO
[progress addObserver:self
forKeyPath:@"fractionCompleted"
options:NSKeyValueObservingOptionNew
context:NULL];
Sonra rapor alır:
- (void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary *)change context:(void *)context
{
[super observeValueForKeyPath:keyPath ofObject:object change:change context:context];
if ([keyPath isEqualToString:@"fractionCompleted"] && [object isKindOfClass:[NSProgress class]]) {
NSProgress *progress = (NSProgress *)object;
NSLog(@"Progress is %f", progress.fractionCompleted);
}
}
nitpicky olmak o * * işaretçi işaretçi * yerine * işaretçi bu. Asıl nesne yığınta yaşar. Doğru cevap için +1 yine de :) –
@GabrielePetronella İyi yakalama, teşekkür ederim :) – iwasrobbed
Bir şey değil. Birkaç kelime ekleme hürriyeti aldım :) –