# Maguyva'da Swift: iOS ve macOS için kod grafları

Canonical source: https://maguyva.ai/tr/languages/swift

License: text under [CC BY 4.0](https://creativecommons.org/licenses/by/4.0/); code samples under [MIT-0](https://opensource.org/license/mit-0); the Maguyva name, logos, brand assets and other code are not covered. Details: [maguyva.ai/license](https://maguyva.ai/license).

Maguyva, Swift'i AST, sembol ve graf desteğiyle sunar; böylece yapay zeka ajanları iOS ve macOS kodunda protokolleri, uzantıları, başlatıcıları ve gözlemcileri izleyebilir.

## Destek anlık görüntüsü

- Katman: AST ve sembol desteği
- Programlama
- Uzantılar: .swift
- Sözdizimi farkında arama ve yapısal bağlam için gerçek AST ayrıştırması.
- Adlandırılmış semboller anlamsal aramayı ve çapraz referansı besler. İlişki çıkarımı etkinleştirildiğinde graf gezinmesi kullanılabilir.
- Bu dil, graf farkındalıklı aramaya semboller ve ilişkiler sağlar; desteklenen kenar türleri dilin yerel yapılarına göre değişir.
- Hem AST ayrıştırma hem de sembol çıkarma kullanılabilir.

## En uygun kullanım

- Büyük uygulama hedeflerine ve ortak Swift paketlerine sahip iOS ve macOS ekipleri.
- Bir türün davranışının birçok dosyaya dağıldığı, protokoller ve uzantılar etrafında kurulmuş kod tabanları.
- Ortak bir model, hizmet veya protokol değişmeden önce etki analizine ihtiyaç duyan ajan iş akışları.

## Ajan iş akışları

- Bir protokolün gereksinimlerinden biri değişmeden önce ona uyan her türü bulmak.
- Bir hizmet yöntemini ViewModel'ler, koordinatörler ve paketler genelinde çağıranları izlemek.
- Bir duruma dokunan başlatıcıları, hesaplanan özellikleri ve `didSet` gözlemcilerini bulmak.

## Swift neden dosya aramasından fazlasını gerektirir

Swift bir türü birçok yere yayar. Bir struct bir dosyada bildirilir, üç başka dosyadaki uzantılardan davranış kazanır ve bir pakette tanımlanmış protokollere uyar. Durum değişiklikleri hesaplanan özelliklerde ve `willSet` / `didSet` gözlemcilerinde gizlenir. Her seferinde tek dosya okuyan bir ajan bunların çoğunu kaçırır.

Maguyva bu yapıyı dizinler; böylece ajan bir türün üyelerini, uyumlarını ve onu çağıranları birlikte görür.

## Maguyva Swift'ten neleri çıkarır

Maguyva `.swift` dosyalarını kapsar. Çağrılabilir semboller fonksiyonları, `init` ve `deinit` bloklarını, subscript'leri, hesaplanan özelliklerin getter ve setter'larını ve `willSet` / `didSet` gözlemcilerini içerir; böylece durumu değiştiren kod özellik gövdelerinde kaybolmak yerine sembol olarak aranabilir.

Struct, enum, protokol ve uzantılarda bildirilen üyeler sahip türleriyle nitelenir (örneğin `CartStore.add`); bir uzantıda eklenen üyeler genişletilen türe atfedilir. Generic parametreler, protokol uyum listeleri ve `?` / `!` sonekleri tanım adlarından kaldırılır, böylece aramalar yalın adı kullanır. Çağrılar `self.` ve sınıf niteleyicisini korur; sondaki kapanışlar çağrının argüman sayısına dahil edilir.

Graf çağrıları, protokol uyumunu, kalıtımı, geçersiz kılmaları, örneklemeyi, öznitelikleri, tür referanslarını, okuma ve yazmaları ve `throw` kenarlarını kaydeder.

## Örnek ajan istemleri

- "Hangi türler `PaymentProvider` protokolüne uyuyor ve her biri nerede oluşturuluyor?" (`dependency_search`)
- "`CartStore.add` yöntemini kim, hangi görünümlerden çağırıyor?" (`find_symbol`, ardından gelen yönde `dependency_search`)
- "Bir anlık bildirimin gelen kutusu ekranına nasıl ulaştığını açıkla." (`get_task_context`)

## Bilinen sınırlar

- Yalnızca `.swift` kaynak kodu eşlenir. Storyboard ve XIB dosyaları uzantı listesinde yer almaz; bu nedenle Interface Builder bağlantıları grafın dışında kalır.
- `print`, `debugPrint`, `NSLog` ve doğrulamalar gibi standart kütüphane ve Foundation çağrıları ilişkilerden filtrelenir; bu nedenle graf kenarı değildir. Bunlar için `text_pattern_search` kullanın.

## Sonraki adımlar

[Hızlı başlangıç](/tr/docs/quickstart) ile bir repo bağlayın, ardından destek matrisi için [uyumluluk sayfasına](/tr/docs/compatibility) bakın. Aynı ürünü Android'de de sunuyorsanız [Kotlin rehberini](/tr/languages/kotlin) okuyun.

## Motor ayrıntıları

- Çağrılabilir semboller fonksiyonları, `init`, `deinit`, subscript'leri, hesaplanan özelliklerin getter ve setter'larını ve `willSet` / `didSet` gözlemcilerini içerir.
- Struct, enum, protokol ve uzantı üyeleri, `CartStore.add` gibi, sahip türleriyle nitelenir.
- Generic parametreler, protokol uyum listeleri ve `?` / `!` sonekleri tanım adlarından kaldırılır; çağrılar `self.` ve sınıf niteleyicisini korur.

## Yararlı MCP giriş noktaları

- `find_symbol`: Tanıma ve referanslara ihtiyacınız olduğunda bir tür, protokol veya yöntem adıyla kullanın.
- `dependency_search`: Uyan türleri bulmak için bir protokolde, çağıranları bulmak için bir yöntemde gelen yönde kullanın.
- `get_task_context`: "Bir anlık bildirimin gelen kutusu ekranına nasıl ulaştığını açıkla" gibi istemler için kullanın.
