日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > windows >内容正文

windows

图解Windows下开发Objective-C程序之二 - Objective-C入门例子

發布時間:2025/4/14 windows 18 豆豆
生活随笔 收集整理的這篇文章主要介紹了 图解Windows下开发Objective-C程序之二 - Objective-C入门例子 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

??? 安裝完環境,完成了Hello World例子之后,來看一些實例。

一 輸出語句的例子

??? 敲入如下語句,

#import <Foundation/Foundation.h>

int main (int argc, const char *argv[])
{
??? NSLog (@"%d and %d and %@",100, 100, "qbs");
??? NSLog (@"%d and %d and %@",25, 75, "begz");

??? return 0;

}

然后運行,出錯了;如下圖;

?

原因是字符串前面要加@,@"字符串",和標準C略有差別;加上@后就正確了,如下圖;

?

下圖的工具欄中,小齒輪是build,綠色三角是Run,再后面是Build and Run,右邊的紅色三角是Debug;每次保存文件后應Build再Run,或點Build and Run;如果直接Run,運行的是上一次Build的結果;

?

二 布爾類型變量的例子

??? 代碼如下;

#import <Foundation/Foundation.h>

BOOL areIntsDiff (int t1, int t2)
{
??? if (t1 == t2) {
??????? return (NO);
??? } else {
??????? return (YES);
??? }

}

NSString *boolString (BOOL yesNo)
{
??? if (yesNo == NO) {
??????? return (@"NO");
??? } else {
??????? return (@"YES");
??? }

}

int main (int argc, const char *argv[])
{
??? BOOL areDiff;

??? areDiff = areIntsDiff (100, 100);

??? NSLog (@"are %d and %d different? %@",
?????????? 100, 100, boolString(areDiff));

??? areDiff = areIntsDiff (25, 75);

??? NSLog (@"are %d and %d different? %@",
?????????? 25, 75, boolString(areDiff));

??? return (0);

} // main

??? 第一個函數比較兩個整數是否相等;第二個函數根據傳入的是OC的YES還是NO,返回字符串的"YES"或"NO";

??? BOOL類型定義在Objective-C中用來持有一個布爾值,定義為YES和NO; 而非TRUE和FALSE;

??? 運行結果如下;

?

三 循環語句

??? 代碼如下;

#import <Foundation/Foundation.h>

int main (int argc, const char *argv[])
{
?NSLog (@"The numbers from 1 to 6:");
?
?int i;
?for (i = 1; i <= 6; i++) {
??NSLog (@"%d\n", i);
?}
?
?return (0);
?
} // main


??? 循環語句跟標準C差不多;運行結果如下圖;

?

四 做一個九九乘法表

??? 在標準C的典型例子中,有一個輸出九九乘法表的例子;編寫如下代碼;

int main (int argc, const char *argv[])
{
?NSLog (@"Nine Nine Multiplication table:");

?int x,y,z;
??? for(x=1;x<=9;x++)
??? {
??????? for(y=1;y<=x;y++)
??????? {
??????????? z=x*y;
??????????? NSLog (@"%d*%d=%d? ",y,x,z);
??????? }
??????? NSLog (@"\n");
??? }

?return (0);
}?

?

??? 運行,輸出結果都正確,但是沒有像標準C的例子一樣整個乘法表排成三角形;如下圖;

?

??? 原來NSLog每次輸出自動換到下一行,NSLog默認輸出是帶時間、進程名、換行等其他額外信息的;要不換行需要自己實現一個Log函數。

?

五 操作一下字符串

??? 代碼如下;

#import <Foundation/Foundation.h>

int main (int argc, const char * argv[])
{
?const char *words[4] = { "喬布斯", "比爾蓋茲",
??????? "克林頓", "小布什" };
?int wordCount = 4;

?int i;
?for (i = 0; i < wordCount; i++) {
??NSLog (@"%s is %d characters long",
????? words[i], strlen(words[i]));
?}

?return (0);
}

??? 定義一個包含四個字符串的數組;運行,結果如下圖;

?

六 Objective-C的類的初步實現

???? 代碼如下;

#import <Foundation/Foundation.h>

@interface student :NSObject
{
??? @public int grade;
??? NSString *name;
}
-(void)print;
-(void) setName:(NSString *)nn;
@end

@implementation student

-(void)print
{
??? NSLog(@"我叫 %@ ,我 %d 年紀了",name,grade);
}

-(void) setName:(NSString *)n
{
??? name=n;
}
@end

int main(int argc, const char * argv[])
{

??? NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];

??????? student *student1 = [student new];
??????? student1->grade=5;
??????? [student1 setName:@"喬布斯"];
??????? [student1 print];

??? [pool drain];
??? return 0;
}

??? 定義一個類student,并實現它的兩個函數print和setName;

??? OC下類的創建分為兩個部分,一個是類的聲明(@interface),一個是類的實現(@implementation);

??? name是一個對象,如果在NSLog中輸出控制符寫為輸出字符串的%s,

NSLog(@"我叫 %s ,我 %d 年紀了",name,grade);
??? 出現下圖的錯誤,名字沒有正確顯示;

?

??? 改為如下;

NSLog(@"我叫 %@ ,我 %d 年紀了",name,grade);
??? 就輸出了正確的結果;

總結

以上是生活随笔為你收集整理的图解Windows下开发Objective-C程序之二 - Objective-C入门例子的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。