黑马程序员_Objective-C基础知识


---------------------- <a href="http://www.itheima.com"target="blank">ASP.Net+Unity开发</a>、<a href="http://www.itheima.com"target="blank">.Net培训</a>、期待与您交流! ----------------------

黑马程序员_Objective-C基础知识

                                                                                    XcodeRush


        今天开始学习Objective-C语言的基础知识啦!


        Objective-C在C语言的基础上增加了一层最小的面向对象的语法。Objective-C完全兼容C语言,可以在Objective-C代码中混入C语言代码,甚至是C++的代码。     

Objective-C源文件的扩展名是.m,C++代码的话就是.mm。可以使用Objective-C语言开发Mac OS X平台和iOS平台的应用程序。
Objective-C在编程语言关注排行榜中的排名不断攀升,这表明国内的Objective-C开发人员在不断的增多。

一、Objective-C的基本语法

1、Objective-C的关键字:基本上所有关键字都是以@开头。
常见的关键字有:@interface; @implementation; @end; @public; @protected;
@private; @selector; @try; @catch; @throw; @finally; @protocol; @optional;
@required; @class; @property; @synthesize; @dynamic;
self; super; id; _cmd; _block; _strong; _week;

2、Objective-C语言中的字符串是以@开头的。
比如:”Hello, World”是C语言中的字符串;而@”Hello, World”则是Objective-C中的字符串。在Objective-C语言中尽量不要使用C语言字符串;尽量使用@开头的Objective-C字符串。

3、Objective-C的其他语法
基本数据类型:char; int; float; double; BOOL(YES/NO);
nil: 相当于C语言中的NULL, 也就是0;
基本语句:循环语句(do while; while; for);条件语句(if; if-else; switch);
注释://; /*…*/;
屏幕输出:NSLog(@”Hello, World!”); NSLog(@”age is %i”, 123);

二、 Objective-C程序的开发过程
.m源文件编译成.o目标文件,然后再连接成.out可执行文件
链接:把项目中所有相关联的.o目标文件跟C函数库合并在一起生成一个可执行文件。

三、 第一个Objective-C程序
#include <stdio.h>
// OC程序的入口:main函数
int main()
{
printf(“Hello, World!\n”);
return 0;
}
Objective-C程序完全兼容C语言程序。

四、 第二个Objective-C程序
如果程序用到了Foundation框架中的东西,链接时就必须添加Foundation框架信息。
添加方法:-framework Foundation添加Foundation框架。
NSLog函数会输出日志信息。
首先学好Foundation框架。
每一个框架中都有许多头文件;如果想使用这个框架的所有头文件,只需要包含这个框架的主头文件就可以了。每一个框架都有自己的主头文件(最主要的头文件)。每个框架的主头文件名都和框架名一样。
比如:Foundation框架的主头文件名:Foundation.h
UIKit框架的主头文件名:UIKit.h
程序只要包含Foundation框架的主头文件Foundation.h,就可以使用这个Foundation框架中的东西。
注意:不要私自改动框架文件中的内容。

相关代码:
/*
一、#import的用途:
1.跟#include一样,拷贝文件的内容;
2.可以自动防止文件的内容被重复拷贝;

二、#import <Foundation/NSObjCRuntime.h>
NSObjCRuntime.h中有NSLog函数的声明

三、Foundation框架头文件的路径
1.右击Xcode.app -> 显示包内容
2.Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/
iPhoneOS6.0.sdk/System/Library/Frameworks/Foundation.framework

四、主头文件
1.主头文件:最主要的头文件,名字一般跟框架名称一样,包含了框架中的所有其他头文件
2.Foundation框架的主头文件名称就是Foundation.h
3.只需要包含Foundation框架的主头文件Foundation.h,就可以使用整个Foundation框架的东西

五、运行过程
1.编写OC源文件:.m\.c
2.编译:cc -c xxx.m xxx.c
3.链接:cc xxx.o xxx.o -framework Foundation
(只有用到了Foundation框架才需要加上-framework Foundation)
4.运行:./a.out
*/

// NSObjCRuntime.h中有NSLog函数的声明
// #import <Foundation/NSObjCRuntime.h>
// 只需要包含Foundation框架的主头文件,就可以使用整个框架的东西
#import <Foundation/Foundation.h>

int main()
{
// NSLog输出内容后会自动换行
NSLog (@"Hello, World!");

return 0;
}


五、 第三个Objective-C程序
分别编译源代码文件:
$cc –c one.m
$cc –c two.m
生成两个.o目标文件:one.o和two.o
链接两个.o目标文件生成.out可执行文件:
$cc one.o two.o –framework Foundation
相关代码:

// one.m
#import "two.h"

int main()
{
test();

return 0;
}

// two.h
void test();

// two.m

#import <Foundation/Foundation.h>

void test()
{
NSLog (@"test()...");
}


六、 第四个 Objective-C程序
演示:Objective-C程序完全兼容C语言程序。
直接编译链接:cc one.m two.h
相关代码:
// one.m
#import "two.h"

int main()
{
test();

return 0;
}

// two.h
void test();

// two.c
#include <stdio.h>

void test()
{
printf("test()...\n");
}


七、 BOOL类型
BOOL完全可以当作整型来用。实际上BOOL类型就是char类型。
Typedef signed char BOOL;
#define YES (BOOL)1
#define NO (BOOL)0
相关代码:
#import <Foundation/Foundation.h>

BOOL test(BOOL mybool)
{
return NO;
}

int main()
{
BOOL b = YES;

BOOL b2 = NO;

BOOL b3 = 1; // YES

BOOL b4 = 0; // YES

NSLog (@"%i", b);

NSLog (@"%i", test(YES));

return 0;
}







【无人机】基于改进粒子群算法的无人机路径规划研究[和遗传算法、粒子群算法进行比较](Matlab代码实现)内容概要:本文围绕基于改进粒子群算法的无人机路径规划展开研究,重点探讨了在复杂环境中利用改进粒子群算法(PSO)实现无人机三维路径规划的方法,并将其与遗传算法(GA)、标准粒子群算法等传统优化算法进行对比分析。研究内容涵盖路径规划的多目标优化、避障策略、航路点约束以及算法收敛性和寻优能力的评估,所有实验均通过Matlab代码实现,提供了完整的仿真验证流程。文章还提到了多种智能优化算法在无人机路径规划中的应用比较,突出了改进PSO在收敛速度和全局寻优方面的优势。; 适合人群:具备一定Matlab编程基础和优化算法知识的研究生、科研人员及从事无人机路径规划、智能优化算法研究的相关技术人员。; 使用场景及目标:①用于无人机在复杂地形或动态环境下的三维路径规划仿真研究;②比较不同智能优化算法(如PSO、GA、蚁群算法、RRT等)在路径规划中的性能差异;③为多目标优化问题提供算法选型和改进思路。; 阅读建议:建议读者结合文中提供的Matlab代码进行实践操作,重点关注算法的参数设置、适应度函数设计及路径约束处理方式,同时可参考文中提到的多种算法对比思路,拓展到其他智能优化算法的研究与改进中。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值