import UIKit
import ObjectiveC
var SubRowObjectKey: String = "subRow"
extension IndexPath {
var subRow: Int {
get {
let subRowObj = objc_getAssociatedObject(self, &SubRowObjectKey)
if subRowObj != nil {
return (subRowObj as! Int)
}
return 0
}
set {
let subRowObj = (newValue as NSInteger)
objc_setAssociatedObject(self, &SubRowObjectKey, subRowObj, .OBJC_ASSOCIATION_RETAIN)
}
}
static func indexPathForSubRow(_ subRow: NSInteger, inRow row: NSInteger, inSection section: NSInteger) -> IndexPath {
var indexPath = IndexPath(row: row, section: section)
indexPath.subRow = (subRow as Int)
print(subRow)
print(indexPath.subRow)
return indexPath
}
}
let indexPath = IndexPath.indexPathForSubRow(5, inRow: 1, inSection: 2)
print(indexPath.subRow)
夫特3.0: 「objc_setAssociatedObject」 問題
- 在靜態FUNC indexPathForSubRow - > '子行' 計數= 5(線NO:30中附加圖像)
- 但要indexPath分配子行後.subRow, 'indexPath.subRow' 計數= 0,而不是圖5(線中附加的圖像沒有29 & 31)
在Xcode版本8.2.1 &夫特測試3.0
任何幫助將不勝感激。
請將實際的代碼發佈到您的問題。閱讀和參考更容易。 – rmaddy
@rmaddy發佈代碼 – Rahul
僅供參考 - 無需爲此使用關聯的對象。 'IndexPath'已經支持任意數量的索引。 'row'和'section'只是用於訪問索引0和1處的值的便利屬性。只需將索引路徑索引2處的'subRow'存儲即可。 – rmaddy