在objective-c代码的头文件中有一个整数属性
@property int xmBufferSize;
我正试图通过
从swift代码设置属性let sharedExample: AnyObject! = XMPAudioPlayer.instance()
sharedExample.xmBufferSize = 1024
我得到的错误是
无法分配到' xmBufferSize'在' sharedExample'
这一定是非常直接的,为什么我收到此错误?
答案 0 :(得分:1)
由于AnyObject
没有属性xmBufferSize
,因此会发生错误。因此,您应首先将shareExample
转换为适当的类型。
(例如,(sharedExample as! YourAwesomeClass).xmBufferSize = 1024
)
如果您想设置没有类型转换的属性,请尝试
sharedExample.setValue(1024, forKey: "xmBufferSize")
这不是类型安全的方式,但有时它方便实用。
答案 1 :(得分:1)
我建议删除AnyObject!
注释并让编译器推断出类型是正确的 - XMPAudioPlayer
。然后你将拥有正确的类型并像往常一样设置属性。
像这样:
let sharedExample = XMPAudioPlayer.instance()
sharedExample.xmBufferSize = 1024
如果您的instance()
方法返回AnyObject
,这非常不幸,那么我建议像这样投射:
let sharedExample = XMPAudioPlayer.instance() as! XMPAudioPlayer
sharedExample.xmBufferSize = 1024
答案 2 :(得分:0)
在## app.R ##
library(shiny)
library(shinydashboard)
ui <- dashboardPage(dashboardHeader(),
dashboardSidebar(),
dashboardBody(fluidRow(
box(
title = "Settings", width = 6, solidHeader = TRUE, status = "primary",
flowLayout(selectInput(
"Design", "Design:",
c("Name 1" = "Name 1",
"Name 2" = "Name 2"),
selected = "Name 2"
))
),
box(
title = textOutput("Design"), width = 4, solidHeader = TRUE, status = "primary",
"Box content"
)
)))
server <- function(input, output) {
output$Design <- renderPrint({
paste(input$Design, 'settings')
})
}
shinyApp(ui, server)
界面中,XMPAudioPlayer
方法的返回类型为instance
,是否正确?将返回类型更改为id
,编译器将正确推断其类型,并将解决错误。