English 中文(简体)
a. 客观地通过 but子的主角
原标题:passing arguments by a button s tag in objective-c

I saw someone passing arguments by a button s tag as follow. how could this work? and is it safe to do like this ?

NSCustomClass* cls = [[NSCustomClass alloc] init:@"",@"",@""];
[button setTag:(int) cls];



- (void)OnClick:(id)sender
{
    NSCustomClass* cls = (NSCustomClass*)[sender tag];
    // to do something with the "cls".
    [cls release];
}

事实上,我没有取得令人望而却的成果。

它以这种方式通过国家情报和安全局等论点来进行罚款。

你们能否告诉我,为什么这是一个坏的想法?

最佳回答

总的来说,你永远不想滥用这些框架。 标签意在储存一种愤怒,主要用来获取一种观点,即:如果你的看法是在Interface Buildinger中形成的话,这种观点在某些情况下可能有用,但提及IBOutlet是不适当的。 正如其他人指出的,把一个点推到暗中可以带来无法预测的结果。

首先是记忆管理问题。 即便是点人活着,你也只是保留所指明的物体。 这实际上是一个弱小的点,但在管理前没有任何管理。 使用电梯的尝试可能会导致翻新的EXC_BAD_ CESS。 谁知道阿革委可能做些什么——打倒——我会期望。

To attach data to a button (which in and of itself sounds like a possible design flaw) you should either subclass or leverage the power of the run-time with objc_setAssociatedObject() and friends.

问题回答

把一个习俗类别 Cast为一片,是一种非常坏的想法,你得 results。

<代码>tag/code>是所有企业单位的不动产。 本条在<代码>上公布。 UIView:

@property(nonatomic) NSInteger tag;

您可以向它分配任何分类价值,包括任何预先确定的固定不变值:

#define Button1Constant 1
#define PushButtonConstant 2
// …Code
[button setTag:PushButtonConstant];
// …More code
if (sender.tag == PushButtonContent)
    // Handle

一般来说,从点式到惯性分类通常表明设计有缺陷;这样做的理由很少,我强烈劝阻这样做,特别是在这种情况下。 它可以工作,但不能保证工作,仅仅因为<代码> tag<>>>> /code> 财产没有记载以这种方式使用。 你在你的法典中增加了“cks”,更难以维持。

从你看到的法典中学习,而是坚持可读的理论和书籍。

作为副注,目标C中通常采用从下几封信开始的所有方法,因此该方法应为:onClick:而不是OnClick:。 本条规则的例外是,这种方法以缩略语开始,例如<代码>-[NSString UTF8String]。

你可以从UIButton分级,用 yourself物来界定财产,而不是使用tag物。





相关问题
Code sign Error

I have created a new iPhone application.I have two mach machines. I have created the certificate for running application in iPhone in one mac. Can I use the other mac for running the application in ...

ABPersonViewController Usage for displaying contact

Created a View based Project and added a contact to the AddressBook using ABAddressBookRef,ABRecordRef now i wanted to display the added contact ABPersonViewController is the method but how to use in ...

将音频Clips从Peter改为服务器

我不禁要问,那里是否有任何实例表明从Peit向服务器发送音响。 I m不关心电话或SIP风格的解决办法,只是一个简单的袖珍流程......

• 如何将搜查线重新定位?

我正试图把图像放在搜索条左边。 但是,问题始于这里,搜索条线不能重新布署。

热门标签