Her şeyden önce ben sadece Swift ile oynamaya başladım ve gerçekten çok fazla kod yazılmadığını gördüm ama tüm öğreticiler I Diğer bazı dillerde olduğu gibi özel kullanmadıklarını ve Swift'in üç erişim denetimi, Private
, Public
ve Internal
, Internal
varsayılanı olduğunu anladıklarını gördüm.Neden Swift özel bir özellik/yöntem kullanımı yaygın değildir
Biraz kafam karışık ve genel olarak çok fazla programlama deneyimim olmamasına rağmen, benim anlayışım, bir programda her şeyi özel kılıyor ve yalnızca istediğiniz özellikleri ve yöntemleri herkese açık hale getiriyordu diğer sınıflara maruz kalmak. Elma Dokümanlar erişim kontrolü, çeşitli düzeylerde sunan ek olarak
itibaren
, Swift tipik senaryolar için varsayılan erişim düzeylerini sağlayan tarafından açık erişim denetim seviyelerini belirtme ihtiyacını azaltır. Gerçekten de, tek hedefli bir uygulama yazıyorsanız, kesinlikle erişim denetimi düzeylerini belirtmeniz gerekmeyebilir. Varsayılan (
Internal
) temelde doğru onların değerlerine diğer sınıflara erişim sağlayarak gibi her özellik/yöntem bırakarak Bana göre
?
Neden Swift/Cocoa'da programınızın diğer bölümlerinin erişime sahip olmasını istemediğiniz özellikler için nadiren Private
erişimcisinin kullanımını görüyorsunuz?
Genelde konsept erişimcilerini çok nazik ve açıklayabilir misiniz ve neden Swift bu şekilde tasarlandı, ya da yukarıda yaptığım varsayımda yanılıyorsam daha iyi bir düzeltme yapabilirim. OOP'taki çok deneyim ve genel olarak erişimciler kavramı üzerinde kafa karışıklığı olabilir.
Teşekkür
Güncelleme: Ben video # 3 24:15 iTunes'da Stanford
Üniversitesi tarafından ve dakika sunulan kurs Developing iOS 8 Apps with Swift
gelen MVC uygulanması izledi Bugün (01/07/2016) Paul Hegarty erişim kontrolü hakkında konuşuyor, kesinlikle tavsiye ederim.
Özel kullanıyoruz. Sadece size bundan bahsetmiyoruz, çünkü… iyi… özel. –
Mümkün olan en dar erişim denetimini kullanma isteğiniz hala geçerlidir, IMHO. Öğreticilerde gördüğünüz snippet'lerin bu konuya kısa bir verim verdiği konusunda şaşırmadım, çünkü bu daha büyük pratik uygulamalarda ortaya çıkma eğilimi gösteriyor. Sürekli olarak 'özel' kullanıldığını gördüğüm tek zaman, depolanmış mülkle doğrudan etkileşimin açık bir şekilde sorunlu olduğu bazı depolanmış özellik tarafından desteklenen bazı hesaplanmış özellikler olduğunda: Bunu genellikle 'özel' olarak işaretlenmiş olarak görürsünüz. Ancak, kısacası çoğumuz kendi kodumuzda 'private' kullanıyoruz. – Rob
@Rob Sadece sınıf içinde (sınıf kapsamı) kullanılacak ve geri kalanını 'dahili' olarak bırakacak herhangi bir özelliği 'özel' yapmak iyi bir uygulama olacağını söyleyebilir miydiniz? Bu şekilde kod en azından daha okunabilir olacaktır. –