2009-11-19 13 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

相關問題