Objective C 以及 Xcode的总结

objective-C在XCode入门Cocoa框架 因为最近项目需要,必须得学习Mac开发。对于一个之前只在 windows中开发的程序员,这个转型有点大。 在XCode下编程主流的有Swift和Objective-C两种语言。相比之下笔者更喜欢swift。但是有一些老的项目还是用OC编写的,以及一些开源项目也是用OC编写的。而我要上手的项目就是一个开源项目,是用objective-c写的。因此即使喜欢swift,也必须得学objective-C... 阅读详情

大纲


公有、私有
类方法、对象方法
对象用指针、原始类型
强指针、弱指针
发送消息
初始化:init     dealloc
              alloc   release
              retain +1
语法细节

1. for(xx in array)
2. @[xx,xx]数组
    @{key:v,…}字典
    @“…”string
     @() NSNumber
3. #import
4.  NSObject
     NSString
     NSArray:只能保存Objective C对象,不能存nil
     NSMutableSrting
     NSDictooinary
     NSNumber
     NSNull
     NSValue
     NSEnumerator:不能改变数组内容
     NSData:bits
     NSDate
     NSRange:只能为正数范围
     UIColor
     UIFont: preferredFontForTextStyle
5.  @interface A:NSObject
     @end
6.  @interface A()
     @end
     @implementation A
     @end
7. 对象在堆中,自动处理分配
8. 强指针:只要指向,便自动保存内容=》引用计数
9. @property
10. 对象方法
     发送消息[] 方法      . 属性
11.self自身
    super父类 
12.所有实例变量从0开始
13.NSLog
14:init:
{
     if (self = [super init]) {..} return self;
}
15. id:泛型,可以指向任何对象
16.description:类似toString
17.若只通过指针引用某类,可以用@class A;继承:必须import
18.除非名字里含有copy,否则返回指针
19. 初始化
[[xx alloc]init]
[[xx alloc]initWith:1 b:2]
[NSString stringWithFormat:@“%d”, 42] 
20.id不会产生警告,会crush
     NSString* 和id一样的,只是可能在编译器进行检查,产生警告
21.KVO:当制定对象的属性修改了,允许对象收到通知的机制
     Proxy类观察A
     Proxy类:[A AddObserver:self forKeyPath:…  ]成为A的观察者
                     ObserveValueForKeyPath:如何响应变化的消息,当A的被观察属性变动,会调用该方法
22. isKindOfClass
      isMemberOfClass
     respondsToSelector
23. 协议
@protocol xx<父亲protocol>
@end
NSObject protocol
NSObject类
NSProxy protocol更简单
@interface A:NSObject<xx>
@end
或者@interface A():<xx> 在.m中
24.代码块(类似函数指针)
^(参数列表) {内容}
可以访问与其同时定义的本地变量作为常量(复制并保存变量的状态)
作为变量,需声明_block a = 3;再在block中用
可作为参数
block中的东西都会存一个强指针—>若将block存储,容易产生循环引用
__weak class* c = self —>不会产生循环引用了
25. 多线程(Grad Central Dispatch)
提交代码块或者函数作为线程运行
nonatomic:互斥的getter和setter
方法:
  1. performSelectorInBackground: @selector withObject:nil/xxx
  2. 队列:dispatch_async异步调用,dispatch_sync同步调用
    1. dispatch_queue_create
    2. dispatch_get_global_queue
    3. dispatch_get_main_queue
    4. dispatch_get_current_queue
  3. NSOperationQueue:更加可控
26.类别:为现有类提供新方法,类扩展,无需再()中加东西,用于一个类分块实现@interface A(xx/空)
27.委托:一种对象(委托对象1),有另一个类(TableView2)请求执行某些工作
2向1发送消息:(bool) tableView:v shouldSelectRow:r
1告诉2返回值
例子:1Finder,符合一个BrowserDelegate协议
          2browser,设Finder为Delegate: browser setDelegate:finder
          browser做一些事,调用1的某些方法
28. selector: resondsToSelector:@selector(f1: xx:)
performSelector: withObject:
[array makeObjectsPerformSelector: withObject:]
[btn addTarget:object action:@selector]
29. struct->string
      string->struct
30. [NSUserDefault standardUserDefault]
     setArray forKey
     setDouble forKey
     setInteger forKey
     setObject forKey
     arrayForKey…
     synchronize
31 NSAttributeString:不可修改
    (NSDictionary*)  attributesAtIndex:  effectiveRange
     可以查找,如果要保存查找的结果,需要copy一份
     
快捷键

1. control+拖控件:添加时间属性
2. option+点击:help
3.cmd+点击:查看内容
ctrl A:行首
ctrl E:行尾
ctrl T:交换
ctrl D:删除后面的
ctrl K:删除后面的所有
使用Xcode工具开发Objective-C程序 1.启动X-code,单击屏幕顶端的File➡️New➡️Project,或者直接点击页面中的Create a new Xcode project, X-code将会弹出如下图所示的新建项目的对话框。                             2.上图所示对话框将项目分为两类:iOS和OS X,其中iOS应用就是为手机、平板、电脑等移动设备开发应用的。现在说一下在OS 阅读详情

相关推荐

Objective-C入门01:使用Xcode新建一个工程

Objective-C入门教程01:使用Xcode新建一个工程 一、objective-c简介:     Xcode 是 Apple 的集成开发环境,用于 iOS 和 Mac OS X 的开发。Xcode可以直接在App Store中安装,也可以从网络下载或是拷贝过来安装。在 Mac 上安装 Xcode,也会同时安装了 iOS SDK,它包含 iOS 平台的编程接口。

FF251606的博客 6019

Xcode、Cocoa、Objective-C 和Swift的关系

Xcode、Cocoa和Objective-C和Swift 的关系 Xcode: 就是iOS的集成开发环境IDE,相当于Windows下的Visual Studio。Xcode的功能及其强大,甚至可以认为超过Visual Studio。当前的Xcode集成开发环境支持两种开发语言:Objective-c和Swift(Xcode 6开始支持),目前最新的Xcode支持一些AI

leemboy的博客 6229

Xcode自定义模板实战:支持Swift与Objective-C

Xcode是苹果公司为Mac OS和iOS开发而量身打造的集成开发环境(IDE),它提供了一系列工具和服务,使开发者能够设计、编写、调试和优化应用程序。作为官方支持的工具,Xcode自然地与Swift、Objective-C等编程语言和最新的API无缝集成,为开发者提供一流的开发体验。安装Xcode相对简单,只需从Mac App Store下载安装,或者通过Apple Developer网站下载最新的开发者工具包。

weixin_35903223的博客 1060

Xcode,Objective-c,Cocoa的区别

XCode:你可以把它看成是一个开发环境,就好像Visual Studio或者Netbeans或者SharpDevelop一样的玩意。你可以将Interface Builder认为是Visual Studio中用来画界面的那部分功能单独提出来的程序。 Objective-C:这是一种语言,就好像c++是一种语言,Java是一种语言,c#是一种语言,莺歌历史也是一种语言一样。 Cocoa:是一大

cqcqqin的专栏 860

将Objective-C代码自动转换为Swift的XCode插件

XCode作为苹果公司官方开发的集成开发环境,自诞生以来便一直伴随着Mac与iOS开发者。它不仅仅是一个代码编辑器,更是一个全面的应用开发平台。XCode集成了一系列工具,包括编译器、调试器和性能分析器,让开发者可以高效地编写、测试以及优化应用。此外,XCode还提供了界面设计工具Interface Builder,使得UI设计更加直观和便捷。XCSwiftr插件的工作原理可以概括为以下几个主要步骤:代码扫描:插件首先扫描项目中所有的Objective-C文件。语法分析。

weixin_42452924的博客 1373

48V电气架构全面科普和解析:下一代智能电动汽车核心驱动

随着电动汽车(EV)技术的不断发展,传统的12V电力系统已经逐渐无法满足日益增长的功率需求,尤其是在电动汽车中,48V电气系统的引入成为了一种理想的解决方案。在电动汽车中,48V系统与Zonal架构的结合,不仅有效提升了车辆电力系统的能效,还为未来的技术升级提供了灵活的设计基础。随着电动汽车(EV)技术的发展,车辆电气系统的工作电压逐步从传统的12V系统向更高的电压过渡。随着电动汽车技术的不断进步,传统的12V电气系统逐渐无法满足现代高性能电动汽车的需求,而48V电力系统的引入成为一种理想的解决方案。

weixin_43199439的博客 7813

Xcode中Objective-C和C++混编的实现(一)

最近在做一个项目需要把OpenCV 的代码移植到iOS中,在移植过程中遇到了很多问题,其中最关键的就是OC与C++混编的问题,找了很多资料和弯路终于走通了,现在把思路整理好做个笔记.希望能给有需要的朋友一点帮助. 注意: 1.有C++代码的文件必须改成.mm Xcode才可以识别 2.确保编译器是Build Settings->Apple LLVM6.1 - La

color99的专栏 9988

SAP FI模块实操:用F-28和F-32搞定客户回款与手动清账,别再让未清项报表一团糟

本文详细解析了SAP FI模块中F-28和F-32事务代码在客户回款与手动清账中的实操应用,帮助财务人员高效管理未清项报表。通过标准清账六步法和手动清账实战技巧,解决因操作不规范导致的账务混乱问题,提升应收账款管理效率。

weixin_30292843的博客 453

Objective-c 总结

1、Xcode集成开发环境简介 Objective-c是面向对象的是C语言的拓展。 C语言是面向过程的。 2、开发环境命名为Cocoa,开发语言是:Objective-C. IOS是MAC操作系统的一个子集。 3、Xcode下载及安装 下载地址:http://developer.apple.com/。 注册一个CDC帐号 Xcode。以dmg格式打包,安装很简单,结束后把目标程序拖...

v5browser 151

Oracle-OGG trail 文件大小引起的进程异常 OGG-01172

监控OGG目标端进程,其中一个进程异常,状态为 ABENDED,start repa 执行失败。进入OGG报告目录检查运行报告 2015-04-20 09:38:36 ERROR OGG-01172 Discard file (/ogg/oggrm/11.2/dirdat/repa.dsc) exceeded max bytes (2000000000). 总结处理方法,从根本上解决问题。

xdyzgjy的专栏 7957

BQ4050开发进阶(二):Protections参数优化策略与实战解析

本文深入解析了BQ4050电池管理芯片中Protections参数的优化策略与实战方法。针对电压、电流、温度等核心保护功能,详细阐述了如何根据具体电芯特性、负载场景和环境因素,精细调整CUV、COV、OCC/OCD等阈值与延时,以在确保电池绝对安全的前提下,实现极致的用户体验与系统可靠性。

rgv234567的博客 481

Xcode objective-c objective-c++以及混编的理解4

对oc objective-c objective-c++ 混编 的一个大误解 Objective-C++只是源代码,不是一种编程语言,它混合了Objective-C类和C++类(两个完全不相关的实体) Xcode:11版本 新建工程时,发现我只有objective-c,而没有objective-c++ 只好选择建了一个objective-c项目 objective-c 是.m后缀的,obje...

ljl1015ljl的博客 2095

【AI生成】市面上主流自组网厂家的技术及市场研究

经过对全球自组网产业技术特征与市场格局的系统分析,本文得出以下核心结论:技术演进呈现智能化与融合化双轨路径 当前自组网技术创新已突破传统组网架构局限,形成"协议优化-架构创新-场景适配"的递进式发展路径。国际厂商聚焦智能算法应用,如Silvus采用深度学习实现动态拓扑优化,传输时延较传统方案降低37%;国内企业则侧重异构网络融合,中国移动设计院提出的5G LAN架构使工业场景通信可靠性提升至99.99%。

qq_31310977的博客 1697

Objective-C第一课 创建Xcode工程

介绍 Objective-C是苹果公司的iOS和Mac OS X操作系统上的原生编程语言。它是一门通用的编译型语言,能够用来构建命令行工具、图形界面应用以及二进制库。它同时提供了各种用来维护大规模框架的工具。 Objective-C应用程序类型 与C++类似的是,Objective-C也是设计用来给C语言添加面向对象的特性,只不过是它们采用了不同的思想来实现。Objective-

戴维营教育 1338

AUTOSAR模式管理-EcuM多核处理及其他概念

因此,EcuM不请求状态。因此,BswM必须确保,例如,在调用EcuM_GoHalt或EcuM_GoPoll之前,必须将关机目标从其默认值更改为ECUM_STATE_SLEEP。对于ECU的关闭,BswM(位于主EcuM的同一个分区中)最终调用主核上的GoOff,该GoOff将请求分发给所有的从核。在ECU Manager模块的早期版本中,睡眠目标被特殊处理,因为在ECU中实现的睡眠模式取决于ECU的功能。在使用了外部的SBC控制相关的MCU的下电的时候,在OFF阶段最后调用SBC进入到Sleep的指令。

m0_49148264的博客 1340

手把手教你从入门到精通C# MES通信

本文是C#与MES通信通信的目录,使用C#与各种MES系统通信的方法我都会在专栏中讲到,比如WebService、Http、Ftp、共享文件夹、串口通信等,绝对是上位机软件工程师实现与MES系统通信的必备教程!

qq_34059233的博客 8750

Objective-C入门 Xcode创建 HalloWorld

一、创建第一个Objective-c程序 启动 Xcode。初次启动的时候,也许会弹出一个“Welcometo Xcode”的一个对话框,我们可以把它关掉。 然后是选择屏幕上部菜单的“File ->New -> Project”,出现了一个让你选择项目种类的对话框。选择Application,右边选择command line tool 即命令行控制台,在弹出来的窗口选择Objective-c。

ChristmasGuus 613

【STK】手把手教你利用STK进行仿真-STK软件简介02 STK专业分析模块

STK/Astrogator是一个交互式轨道机动和深空探测计划工具,用于飞行器运行及任务分析,通过定义推力模型、目标星历、飞行器姿态,提供轨道机动的解决及优化方案。应用Astrogator分析轨道机动的可见性和地面站覆盖,用户可以快速、方便地进行全局分析。任务控制序列保存在STK场景中,用于任务运行、快速制定精确轨道机动方案。为在轨运行的飞行器制定或执行机动计划时,分析人员可以根据飞行过程数据,如发动机定标参数、实际初始轨道,计算出推进器点火和点火时机数据,用于发出指令及精炼机动计划。

weixin_44184852的博客 1864

XCode、Objective-C、Cocoa !!!

大部分有一点其他平台开发基础的初学者看到XCode,第一感想是磨拳擦掌,看到 Interface Builder之后,第一感想是跃跃欲试,而看到Objective-C的语法,第一感想就变成就望而却步了。好吧,我是在说我自己。 如果你和我一样,对苹果相关的开发:Mac OS X或

Code Heaven 2077

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

Xcode Objective-c学习笔记

Objective-c 简介 基础用法示例 //类方法调用 FirstClass *sampleClass = [[FirstClass alloc] init]; [sampleClass sayHello]; //定义变量 注意驼峰命名、 int _appName; char characterA = 'A'; //类型转换 float floatNum = 1.2;

u010689434的博客 2070

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

xcode的Objective-C之helloworld

shareinfo2018 487

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

Objective C基础教程——Xcode工程创建

Objective-C只不过是拥有一些附加特性的C语言。本文将构建第一个Objective-C程序,同时介绍一些关键的附加特性。 ##2.1 最简单的Objective-C程序 我们来写一个最简单的Hello World。 ###构建Hello Objective-C 此时我们需要一个IDE(Integrated Development Environment)在这里我们需要Xcode。打开Xco...

Zhanganliu的博客 935

[XCode] XCode 6给 ViewController 创建类的时候找不到 Objective C Class 选项

参考:http://stackoverflow.com/questions/26009639/xcode-6-creating-new-objective-c-class 【问题】 在先前的XCode4中,为一个 ViewController  创建一个Object C 的类的时候,可以通过 create new-->Objective C Class 的方式做到。但是在 XC

yasi_xi的专栏 5446

【无标题】Xcode创建objective-c与CocoaPods项目简介

Xcode创建objecctive-c项目简介

weixin_67362324的博客 1008

在Xcode中使用C++与Objective-C混编

有时候,出于性能或可移植性的考虑,需要在iOS项目中使用到C++。 假设我们用C++写了下面的People类: // // People.h // MixedWithCppDemo // // Created by Jason Lee on 12-8-18. // Copyright (c) 2012年 Jason Lee. All rights reserved. // #ifnd

JasonLee的专栏 2万+

ios Objective-c 代码修改xcode中的布局

方法1: 直接遍历这个控件的所有布局 ///遍历布局 for (NSLayoutConstraint *constraint in self.view.constraints) { ///找到高度布局 if (constraint.firstAttribute == NSLayoutAttributeHeight) { ...

qq_41586150的博客 397
上一篇: 找钱方式:递归,循环的解法
下一篇: Python学习总结
圆形毕露
博客等级 码龄17年 20粉丝 103原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值