我对Obj-C不是很熟悉,并且我正在尝试做一些非常简单但却无法弄清楚表达式,大括号等的语法。
我有:
type foo = {
thing(text),
.paramA = 4.0f,
.paramB = 20.0f,
};
我试图简单地将它包装在三元组中并在某些情况下将其设为零,但无论我尝试什么(将其包裹在parens,braces等中),x-code都会因为各种原因向我抱怨:< / p>
type foo = condition
? {
thing(text),
.paramA = 4.0f,
.paramB = 20.0f,
}
: nil;
帮助? :)
答案 0 :(得分:0)
你想要做的事情在objectiveC中很难(但是几乎是微不足道的,而且就像你在swift中输入它一样)有几个原因
我们无法动态创建元组(String,Float,Float)。我们可以声明一个结构,但遗憾的是由于ARC我们在结构中确实没有字符串成员(任何更长的*叹气)
在objectiveC中,只有指针类型可以设置为nil,结构或基元(值类型)不能,所以你需要处理指向该结构或基元的指针。
由于这些原因,最简单的方法,尽管看起来可能看起来很荒谬,但是要使类型成为一个类(具有你需要的三个变量的属性),因此foo将是Type *
类型的指针最佳。
答案 1 :(得分:-1)
您的第一个代码示例不是Objective-C;它是C(也许)。
您的第二个代码示例尝试引入nil
,但C中没有nil
。您可以从不分配nil
,其中C类型是预期的。只能在需要Objective-C对象的地方分配nil
,并且您没有Objective-C对象。您可以拉伸一个点并将其指定为期望C指针的位置(因为这是对象的表达方式),但您也没有C指针。