我是iphone开发的新手,刚刚进入学习阶段。我正在学习书籍和视频讲座,而我看到这段代码我无法理解
- (IBAction)logoff:(id)sender {
//some code here
}
这里我不明白这是id数据类型还是某个实体。什么可能是将id作为参数传递的原因。
在我看到的anohter地方
if(self)
{
// some code
}
我不明白为什么他会自我通过。检查自我的原因是什么。我们应该在任何时候使用它之前检查自己。
如果你告诉他为什么使用这个原因让我能在你的代码中高效合理地使用它,那对我来说会更有帮助。
感谢
答案 0 :(得分:2)
- (IBAction)logoff:(id)sender {
//some code here
}
许多控件(UIButton,UISwitch,UIBarButtonItem)可以连接到同一个操作方法。由于发件人的类型为id
,因此它会接受许多不同的发件人类型,即发件人类型不仅限于UIButton。
Maulik注意到参数表示标记是错误的,它表示发送消息的对象(例如UIControl)。例如,为了检索标记,可以对该对象进行类型转换,前提是发送方的类型包含标记属性,并且发送方的类型正确。
现在关于你的另一个问题:self
在继续之前被检查为非零。有时初始化可能由于多种原因(例如内存问题)而失败。如果对象无法正确初始化,那么用它做的就不多了(例如,没有访问ivars,因为没有为ivars分配内存)。
答案 1 :(得分:1)
他没有,他评估self
以检查它是否为nil
。
self
不是nil
// some code
答案 2 :(得分:0)
这意味着注销包含id作为函数的参数..现在在if条件下它检查控件是否仍然存在...碰巧你可能只是释放控件或者只是因为你自己释放逻辑...所以我们需要这个来检查控件是否仍然存在..
答案 3 :(得分:0)
- (IBAction)logoff:(id)sender {
//some code here
}
上面的代码用于按钮点击。一个按钮(注销)通过IB推送。当你点击该按钮,方法与该按钮关联并将被调用。 (id)sender
是一个表示按钮标签属性的参数。如果您有多个按钮并且想要处理这些按钮的单击事件,这非常有用。
if(self)
{
// some code
}
以上代码检查天气内存分配是否正确完成。