2016-11-23 12 views
2

Я использую фреймворк GlyuckDataGrid для реализации datagrid в Objective-C. Существует расширение под названием IndexPath+DataGrid.swift, которое жизненно важно для реализации datagrid, однако оно написано в Swift.Как получить доступ к расширению Swift в Objective-C?

Я использую CocoaPods, и у меня есть следующий импорт и вы по-прежнему не можете получить к нему доступ.

@import GlyuckDataGrid; 
#import <GlyuckDataGrid/GlyuckDataGrid-Swift.h> 

E: теперь, когда у меня есть ответ на мое решение, я хочу отметить, что я упускать из виду IndexPath и NSIndexPath. не будем меня и путать 2 ...

+0

Ваше расширение должно быть помечено как общедоступное, а расширение не может быть определено на мостовом типе - вы проверили это? – Whakkee

+0

@Whakkee больной вилкой и проверить его завтра. – Multinerd

ответ

2

Каркас использовал чистый Swift-тип (IndexPath) вместо эквивалента Objective-C (NSIndexPath). В вашем случае, решение было расширить NSIndexPath, а также IndexPath, чтобы выставить функциональные возможности Objective-C:

public extension NSIndexPath { 
    /** 
    Returns an index-path object initialized with the indexes of a specific row and column in a data grid view. 
    - parameter column: An index number identifying a column in a DataGridView object in a row identified by the row parameter. 
    - parameter row: An index number identifying a row in a DataGridView object. 
    - returns: An NSIndexPath object. 
    */ 
    convenience init(forColumn column: Int, row: Int) { 
     self.init(item: column, section: row) 
    } 

    /// An index number identifying a column in a row of a data grid view. (read-only) 
    var dataGridColumn: Int { 
     return self.index(atPosition: 1) 
    } 

    /// An index number identifying a row in a data grid view. (read-only) 
    var dataGridRow: Int { 
     return self.index(atPosition: 0) 
    } 

    /// An index number for single-item indexPath 
    var index: Int { 
     return self.index(atPosition: 0) 
    } 
} 

От c281729.

+0

спасибо, один из высших взлетов удалил его, прежде чем я смог. – Multinerd

 Смежные вопросы

  • Нет связанных вопросов^_^