程式日誌--ios“文字長度--button與label的互動”程式

來源:互聯網
上載者:User

標籤:

我的學習日誌003:“文字長度--button與label的互動”程式

交代一下我做程式的工具:mac os x虛擬機器10.9.3         Xcode6         百度^-^         參考書iPhone30天精通(本書已經過時,但是還有一定的參考價值,可以引導正確的學習方向)。


沒什麼新的知識點,直接放步驟和代碼。


XCode建立SingleView程式,viewControllor.h代碼如下:

#import <UIKit/UIKit.h>

#import<Foundation/Foundation.h>

@interface viewController:UIViewController{

              IBOutlet UITextField *textField;

              IBOutlet UILabel *label;

}

@property(nonatomic,retain) UITextField *textField;

@property(nonatomic,retain) UILabel *label;

-(IBAction)Click;

@end

viewControllor.m檔案

#import "viewController.h"

@implementation viewController

@systhesize textField,label;

-(void)viewDidLoad{

              [super viewDidLoad];

              label.text = @"請輸入文字";

}

-(IBAction)Click{

            //這個方法是每一次點擊button的時候調用的

              int count = textField.text.length;

              if(count>20){

                          label.text = @"輸入的含空格和標點符號在內的文字超出20個";

                          textField.text = NULL;

             }

              else{

                          NSString *result = [NSString stringWithFormat:@"輸入的文字個數為%d",count];

                          label.text = result;

                          textField.text = NULL;

             }

}

-(void)didReceiveMemoryWarning{

              [super didReceivedMemoryWarning];

}

storyboared處理:

首先要建立textField,button,label控制項,因為前面的代碼已經建立了這幾個控制項的對象了,然後選分別中每一個控制項,按住ctrl鍵,滑鼠左鍵拖向.h檔案裡面的相應的對象。

運行就OK了。這一步可能有不懂得,直接,看圖自己操作就應該可以了,不會這種方法的注意圖中的細節。



說一下我自己遇到的問題與不理解的地方:遇到的問題:

1.啟動並執行時候遇到警告:The simulator can‘t be launched.....大概就是說我模擬器別的程式還用著呢,我怎麼可以再運行別的程式呢。這種時候只要強制關一下XCode就可以了,

強制關閉快速鍵是commend+Q(虛擬機器沒有commend按鍵,win鍵代替即可)。

2.我在寫viewController.h檔案的時候忘了加上"#import<Foundation/Foundation.h>"這句話,導致我的程式出現“Thread1:signalSIGABRT...”這樣的警告,所以以後寫程式的時候要細心。

3.在開啟程式的時候XCode還警告我“No signing identity dound”這是一個簽名警告,意思就是沒有簽名標識。如果是用模擬器調程式的話沒有關係,可以不用管它。

待解決的知識點:

@prperty與@systhesize

我在我的第二篇日誌裡面總結了一下,但是現在看來,還是太菜。http://blog.csdn.net/v7595v/article/details/46833209

現在只總結@prperty與@systhesize,貪多嚼不爛,如下:

Objective-C語言關鍵詞,與@synthesize配對使用。xcode4.5以及以後的版本,@synthesize可以省略下面以 Person 類為例:在. h 檔案中:@interface Person : NSObject{NSString * _name;NSString * _sex;NSInteger _age;}@property NSString * name;@property NSString * sex;@property NSInteger age;表示聲明了三個屬性: name,sex,age, 預設產生3個對應的 setter 和 getter 方法在. m 檔案中:@implementation Person@synthesize name = _name;@synthesize sex = _sex;@synthesize age = _age;@end表示實現3個 setter 和 getter 方法,其中 name = _name 表示說在 getter 和 setter 方法中操作的執行個體變數是_name,如果省略了_name,_age,_sex, 那麼會在. h 檔案中產生同名的執行個體變數 name,sex,age(注意:這裡並沒有底線),此時產生的 setter 和 getter 方法所操作的執行個體變數是 name,sex,age, 所以_name,_sex,_age 並沒有被操作.在 ios5.0後,@synthesize也可以省略不寫,此時在. h 檔案中唯寫@ property 即可,編譯器會自動產生相應的執行個體變數,執行個體變數的名字是屬性名稱前加底線.


這是我在百度百科copy過來的資料,按照它的說法的話,我就可以去掉viewController.h檔案裡面的@interface{}裡面定義的執行個體變數,同時去掉@systhesize,唯寫@property就可以了。But,去掉了@systhesize雖然沒關係,但是去掉@interface{}裡面的執行個體變數之後,用ctrl無法將storyboard和.h檔案裡面的@property相關聯。所以只能加上@interface{}裡面定義的執行個體變數。還有一點,我加入的執行個體變數是與@property修飾的變數名字是相同的,沒有用"_"去區分,然而也沒有錯誤,那我便暫時先按這種方便的方式去寫代碼。



IB 就是Interface Builed:

書上和網上總是說IB就是InterfaceBuiled,關於IBAction和IBOutlet我已經在我程式日誌的第一篇裡面解決了這一問題,http://blog.csdn.net/v7595v/article/details/46831265

什麼是InterfaceBuiled?

看了百度百科http://baike.baidu.com/link?url=WUPoCb4zLKQuhj8NB46slu4phwAxGc0v56FyahESMEDkViA833E3zZQqUyqI-NULGwZHd-3sWuTziY3DCJqbea

IB再深究已無意義,瞭解一下作罷。




著作權聲明:本文為博主原創文章,未經博主允許不得轉載。

程式日誌--ios“文字長度--button與label的互動”程式

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.