İşte örnek kod Aşağıda http://developer.apple.com/library/ios/#samplecode/MVCNetworking/Introduction/Intro.htmlApple'ın Sample MVCNetworking'deki Singleton Sınıfı NetworkManager doğru mu?
link NetworkManager.m
+ (NetworkManager *)sharedManager
// See comment in header.
{
static NetworkManager * sNetworkManager;
// This can be called on any thread, so we synchronise. We only do this in
// the sNetworkManager case because, once sNetworkManager goes non-nil, it can
// never go nil again.
if (sNetworkManager == nil) {
@synchronized (self) {
sNetworkManager = [[NetworkManager alloc] init];
assert(sNetworkManager != nil);
}
}
return sNetworkManager;
}
Açıkçası burada iş parçacığı güvenli sorunları vardır dosyadan kod parçacığı olmasıdır. Birden fazla iş parçacığı olduğunda iki NetworkManager örneği oluşturulabilir. Yani Apple bir hata yaptı, değil mi?
"Açıkça iki sNetworkManager oluşturulabilir. Bu yüzden Apple bir hata yaptı, değil mi?" Niye ya? –
Lütfen Kurt'un cevabına bir bakın. –