97干视频,99国产精品懂色,亚洲精品99久久久久中文字幕,伊人五月丁香综合AⅤ,国产精品成人免费999

  您的位置:華清遠(yuǎn)見教育科技集團(tuán) >> iOS資料 >> iOS應(yīng)用程序開發(fā)教程:十、排除故障和檢查代碼  
 
iOS應(yīng)用程序開發(fā)教程:十、排除故障和檢查代碼
分享到:

按照之前九章iOS應(yīng)用程序開發(fā)教程操作到這里,如果你的應(yīng)用程序不能正確工作,請嘗試本文描述的解決問題方法。如果應(yīng)用程序仍然不能正確工作,你可以把你自己的代碼與本文末尾給出的清單進(jìn)行比較。

代碼和編譯器警告

代碼編譯時應(yīng)該不會有任何警告。如果真的收到警告,就很有可能是代碼出錯了。因?yàn)?Objective-C 是一種非常靈活的程序設(shè)計語言,有時候編譯器給出的也僅僅是一些警告而已。

檢查串聯(lián)圖文件

如果程序未能正確工作,開發(fā)者會很自然地去檢查源代碼來找出錯誤。但使用 Cocoa Touch,又增添了另一個層面。應(yīng)用程序的大部分配置可能是"編碼"在串聯(lián)圖中。例如,如果連接不正確,應(yīng)用程序的行為就會與你的期望不符。

·如果點(diǎn)按按鈕時文本沒有更新,可能是沒有將按鈕的操作連接到視圖控制器,或是沒有將視圖控制器的 outlet 連接到文本欄或標(biāo)簽。

·如果點(diǎn)按"Done"按鈕時鍵盤不消失,可能是沒有將文本欄的委托連接好,或者把視圖控制器的 textField Outlet 連接到了文本欄。務(wù)必在串聯(lián)圖上檢查文本欄的連接:按住 Control 鍵點(diǎn)按文本欄以顯示半透明的連接面板。你應(yīng)該會在 delegate outlettextField 引用 outlet 的旁邊,看到帶有填充的圓圈。

如果你已連接了委托,可能有更微妙的問題(請參閱下一部分"委托方法的名稱")。

委托方法的名稱

與委托有關(guān)的一個常見錯誤是拼錯委托方法的名稱。即使已經(jīng)正確設(shè)定了委托對象,但是如果委托未在其方法實(shí)現(xiàn)中使用正確的名稱,則不會調(diào)用正確的方法。通常好的做法是從文稿中拷貝和粘貼委托方法聲明(例如 textFieldShouldReturn:)。

代碼清單

這一部分提供 HelloWorldViewController 類的接口和實(shí)現(xiàn)文件的代碼清單。請注意,該清單并未列出 Xcode 模板提供的注釋和其他方法的實(shí)現(xiàn)。

接口文件:HelloWorldViewController.h

#import <UIKit/UIKit.h>

    @interface HelloWorldViewController :UIViewController <UITextFieldDelegate>

    @property (copy, nonatomic) NSString *userName;

    @end

實(shí)現(xiàn)文件:HelloWorldViewController.m

#import "HelloWorldViewController.h"

    @interface HelloWorldViewController ()

    @property (weak, nonatomic) IBOutlet UITextField *textField;
    @property (weak, nonatomic) IBOutlet UILabel *label;

    - (IBAction)changeGreeting:(id)sender;

    @end

    @implementation HelloWorldViewController

    - (void)viewDidLoad
    {
        [super viewDidLoad];
        // Do any additional setup after loading the view, typically from a nib.
    }

    - (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
    {
        return (interfaceOrientation != UIInterfaceOrientationPortraitUpsideDown);
    }

    - (IBAction)changeGreeting:(id)sender {

        self.userName = self.textField.text;

        NSString *nameString = self.userName;
        if ([nameString length] == 0) {
            nameString = @"World";
        }
        NSString *greeting = [[NSString alloc] initWithFormat:@"Hello, %@!", nameString];
        self.label.text = greeting;
    }

    - (BOOL)textFieldShouldReturn:(UITextField *)theTextField {

        if (theTextField == self.textField) {
            [theTextField resignFirstResponder];
        }
        return YES;
    }

    @end

 更多相關(guān)文章

·iOS 應(yīng)用程序開發(fā)教程:九、實(shí)施視圖控制器
·iOS 應(yīng)用程序開發(fā)教程:八、讓應(yīng)用程序具有輔助功能
·iOS 應(yīng)用程序開發(fā)教程:七、建立文本欄的委托連接
·iOS 應(yīng)用程序開發(fā)教程:六、為文本欄和標(biāo)簽創(chuàng)建 Outlet
·iOS 應(yīng)用程序開發(fā)教程:五、為按鈕創(chuàng)建操作