Swift 无法分配类型为';indexath';输入';Int';
我想知道如何声明IndexPath类型的变量。如果有人能告诉我如何使用内联条件,这也会非常有帮助Swift 无法分配类型为';indexath';输入';Int';,swift,Swift,我想知道如何声明IndexPath类型的变量。如果有人能告诉我如何使用内联条件,这也会非常有帮助 var indexPath = 0 if PlaylistController.shared.playlists.count == 1 { indexPath = IndexPath(item: sender.tag +1, section: 0) } else { indexPath = IndexPath(item: sender.tag -1, section: 0) }
var indexPath = 0
if PlaylistController.shared.playlists.count == 1 {
indexPath = IndexPath(item: sender.tag +1, section: 0)
}
else {
indexPath = IndexPath(item: sender.tag -1, section: 0)
}
或者,我认为:
let item = PlaylistController.shared.playlists.count == 1 ? sender.tag+1 :sender.tag-1
let indexPath = IndexPath(item:item, section:0)
或者,我认为:
let item = PlaylistController.shared.playlists.count == 1 ? sender.tag+1 :sender.tag-1
let indexPath = IndexPath(item:item, section:0)
只需更改行:
var indexPath = 0
致:
或者将整个事件替换为:
let indexPath = IndexPath(item: sender.tag + (PlaylistController.shared.playlists.count == 1 ? 1 : -1), section: 0)
只需更改行:
var indexPath = 0
致:
或者将整个事件替换为:
let indexPath = IndexPath(item: sender.tag + (PlaylistController.shared.playlists.count == 1 ? 1 : -1), section: 0)
只需将变量的类型指定为
indepath
,因为这是您需要存储的类型(您不想保存数字)
只需将变量的类型指定为
indepath
,因为这是您需要存储的类型(您不想保存数字)
我先尝试了一下,但我得到了“类型名后应该有成员名或构造函数调用”。它似乎与var indexath=indexath一起工作。self@twix使用冒号
:
不相等符号=
我先尝试了,但得到了“类型名称后的预期成员名称或构造函数调用”。它似乎与var indexath=indexath一起工作。self@twix使用冒号:
不等于符号=
这在您的答案中是隐式的,但可能值得明确提及:indepath
可以声明为常量,如果它只初始化一次(在每个可能的代码路径上)。@MartinR这是一个很好的观点。我在回答的第一个选项中选择了let
,因为OP的剩余代码将在if/else
中给出indexPath
一个值。但我可能应该解释为什么let
在这种情况下是有效的。这在您的答案中是隐含的,但可能值得明确提及:indepath
可以声明为常量,如果它只初始化一次(在每个可能的代码路径上)。@MartinR这是一个很好的观点。我在回答的第一个选项中选择了let
,因为OP的剩余代码将在if/else
中给出indexPath
一个值。但我可能应该解释一下为什么let
在这种情况下是有效的。我有一行:ObjectsController.shared.playlists[indexPath.item]是否可以用类似[$0]的东西替换[indexPath.item],所有可能的值?我有一行:ObjectsController.shared.playlists[indexPath.item]是否可以替换[indexPath.item]使用类似[$0]的值,所有可能的值?