2016-01-13 47 views
0

在編輯objective-c爲xcode時向函數添加調用時,通過參數標籤突出顯示僅值和設置它們很簡單。如何讓xcode在不丟失參數名稱的情況下編輯SWIFT參數值?

objective-c works great

對於SWIFT然而,這兩個參數的名稱和值將突出顯示,並試圖設置的值刪除參數名稱。

SWIFT highlights both argument name and value

我如何獲得的Xcode不突出,然後失去了爭論的名字嗎? [注意:xcode版本是7.1.1]

+0

這僅僅是關於你的例子中的'C'函數,還是這個用於'Swift'中的任何方法?這很重要,因爲在'Swift'中使用'C'函數就像這樣工作,你不能改變它。但是,您可以控制突出顯示的內容以及您在「Swift」中創建的方法的內容。 – keithbhunter

回答

2

在您的示例中,選項卡的行爲是正確的。參數名稱應該在您構建呼叫時刪除,因爲它不是外部參數參數名稱。

注聲明:

public func CVPixelBufferCreateWithPlanarBytes(allocator: CFAllocator?, 
_ width: Int, 
_ height: Int, 
// ... 

_意味着外部名字都被抑制。這種方法被稱爲像C函數(只是一個逗號分隔的參數值序列) - 因爲在現實中,它 C函數:

CV_EXPORT CVReturn CVPixelBufferCreateWithPlanarBytes(
    CFAllocatorRef CV_NULLABLE allocator, 
    size_t width, 
    size_t height, 
    // ... 
0

這取決於羯羊初始化或函數你打電話有外部名字或沒有。如果外部名稱存在,Tab鍵會讓您爲此外部名稱發送參數。如果不存在,XCode自動完成顯示內部名稱,爲了您的方便,但在initalizar /函數中,缺少外部名稱意味着您只應發送值。

實施例:

class MyClass { 
    var myInt : Int 
    var myString : String 

    init(myInt: Int, myString: String) { 
     self.myInt = myInt 
     self.myString = myString 
    } 
} 

當調用上述初始化器,外部名稱被設置爲等於由默認的內部名稱,對於所有初始參數,和的XCode將自動完成根據:

var a = MyClass(myInt:詮釋, myString:字符串)

Wherea S爲下面的例子:

func foo(_ a: Int, _ b: String) { 
// ... 
} 

沒有外部名存在(通過_前綴,在函數簽名內部名稱supressed),並且調用函數時,的XCode將自動完成您展示的內部名稱,但是標記全內部名稱+值部分將被重寫:

foo (一個的:int,b:字符串)

相關問題