2009-11-19 30 views
4

我采取这种代码这个黑客会让苹果狂怒吗? (会不会拒绝我的应用程序?)

Changing the background color of a UIAlertView?

UIAlertView *theAlert = [[[UIAlertView alloc] initWithTitle:@"Atention" 
    message: @"YOUR MESSAGE HERE", nil) 
    delegate:nil cancelButtonTitle:@"OK" otherButtonTitles:nil] autorelease]; 

    [theAlert show]; 

    UILabel *theTitle = [theAlert valueForKey:@"_titleLabel"]; 
    [theTitle setTextColor:[UIColor redColor]]; 

    UILabel *theBody = [theAlert valueForKey:@"_bodyTextLabel"]; 
    [theBody setTextColor:[UIColor blueColor]]; 

    UIImage *theImage = [UIImage imageNamed:@"Background.png"];  
    theImage = [theImage stretchableImageWithLeftCapWidth:16 topCapHeight:16]; 
    CGSize theSize = [theAlert frame].size; 

    UIGraphicsBeginImageContext(theSize);  
    [theImage drawInRect:CGRectMake(0, 0, theSize.width, theSize.height)];  
    theImage = UIGraphicsGetImageFromCurrentImageContext();  
    UIGraphicsEndImageContext(); 

    [[theAlert layer] setContents:[theImage CGImage]]; 

orginally发表oxigen。

我不太确定应该在我的应用程序中使用此代码。请问苹果有什么问题关于这个黑客(他们会拒绝该应用程序?)

+9

很难看出App Store审查过程中产生的恐惧和自我审查的数量:-( – Thilo 2009-11-19 06:41:48

+1

不要这样做,他们会烧你的房子! – erotsppa 2009-11-19 15:18:36

回答

10

下划线作为您正在访问的属性的前缀(_titleLabel,_bodyTextLabel)清楚地表明这些属性是私有属性,不应该被修饰。 Apple最近开始扫描所有提交的二进制文件以访问私有方法和属性,并且这些值在您的应用程序中应该足以让您拒绝。使用私有API,拒绝或不使用私有API绝不是一个好主意,因为它们通常是私有的,并且可能会因未来的操作系统更新而中断应用程序。

此外,还通过改变警报颜色违反iPhone Human Interface Guidelines

您可以指定文本,数字键的 ,并在 警报的按钮的内容,但你不能自定义 本身的警报背景外观 本身。

再次,从iPhone Human Interface Guidelines

因为用户习惯于 外观和行为的这些 意见,它在你的应用程序 他们 坚持正确使用是很重要的。

+0

因为代码使用“valueForKey”,扫描仪可能找不到这个(因为他们会寻找符号,而不是普通的字符串)。但是,我不想赌那个...... – 2009-11-19 15:51:03

+0

是的。不难想象,他们也可以扫弦。不过,我不知道他们是否会担心误报。他们寻找的大多数符号在应用程序中某处出现在合法文本中会很奇怪。 – 2009-11-19 16:43:20

2

只有苹果公司可以回答这个问题。直到您提交并等待大约2周后,他们才会回答。

如果你真的想要它,并有2个星期杀死,请尝试提交它。但稍后它可能会在更新时被拒绝。

您在这里使用任何未公开的API吗?如果你是,假设它会被拒绝。如果你不是,但你正在做一些不同的事情,那么你的问题的唯一答案是正确的是“我不知道”。

+0

感谢您的答案,并给予您的时间;) – 2009-11-19 06:55:20

0

如果您想知道某些编程技术是否会导致拒绝,请制作一个功能有限的小应用程序,并在其中使用您可疑的技术。

需要2周的时间才能得到答案,但至少您不会在前期投入大量时间。

如果他们批准您的测试应用程序,请将其从商店中删除。如果它具有真正的实用性,请将价格设置为0.99美元并保留。

这种方法不是万无一失的,但它的成本很低。

+0

“这种方法不是万无一失的......”。你说的!苹果商店的人们改变了主意并拒绝了他们之前接受的东西,这些例子都有很好的宣传。 – 2009-11-22 09:17:36

相关问题