olumsuzlamaktadır. Apple tarafından verilen kod örnekleri şu şekilde görünür:Amaç-C @available anahtar kelime
if (@available(iOS 10.0, *)) {
// iOS 10.0 and above
} else {
// below 10.0
}
Ancak kimse, mevcut iOS sürümü, belirli bir sürümü altında olması halinde kod çalıştırmasına istiyorum senaryo vardır. Aşağıdaki kod çalışacaktır varsayılır:
if ([email protected](iOS 10.0, *)) {
// below 10.0
}
çalışmadığını görünüyor Ancak, ve Xcode aşağıdaki uyarıyı alıyorum:
@available does not guard availability here; use if (@available) instead
Here LLVM ekledi taahhüt edilir Gördüğüm tanı.
if
blok (çok zarif değil) herhangi bir kod eklemedenif-else
varyantı kullanın:o sorunun iki olası geri dönüşün vardır.
-[NSProcessInfo isOperatingSystemAtLeastVersion:]
gibi eski yaklaşımları kullanmaya devam edin.
Eksik olduğum @available
'u kullanmanın başka bir yolu var mı?
Ben LLVM makaleyi okuduktan sonra bunu bir if başka koşul veya talimat '@ available' kullanamaz belirtmektedir. Yani temel olarak düşünebilmemin tek yolu boş bir “if” bedene sahip olmak ama “else” bloğu içindeki eylemi yapmak. Bu benim için tek yol gibi görünüyor. – cramopy
"Ancak bu işe yaramaz gibi görünüyor ve Xcode'dan şu uyarıyı alıyorum:" Sadece bir uyarı olduğu için çalışmadığı anlamına gelmez. Uyarı, kullanılabilirliği koruduğunu, ancak kullanılabilirliği korumak için sadece bir sürüm kontrolü olarak kullandığınızı söylüyor. – user102008