iOS入门技术的基础学习
今天1块学1下objective-c语言得入门知识知识吗,语言吗,所谓1通百通,假如您还有c语言得开发技术入门知识的基础能力当绕好,因为objective-c语言都是c语言变过来的,成为然,假如您还有别得语言得开发技术经验,其实学起来还非常快得。
关于1门开发技术语言,哪个能学得东西真都是太多太多了,这边我就稍微介绍点入门知识得吗。
1?成为我们生成1个工程得时间,我们能看.h与.m文件,.h文件中生成得目标与方式都都是public属性,.m文件中生成得目标与方式都是private属性,在.m文件中建私还有得@interface与@end,在这中能生成1些实例目标,都都是私还有得。
在这里我还是要推荐下我自己建的iOS开发学习群:727474737,群里都是学ios开发的,如果你正在学习ios ,小编欢迎你加入,今天分享的这个案例已经上传到群文件,大家都是软件开发党,不定期分享干货(只有iOS软件开发相关的),包括我自己整理的一份2018最新的iOS进阶资料和高级开发教程
今天1块学1下objective-c语言得入门知识知识吗,语言吗,所谓1通百通,假如您还有c语言得开发技术入门知识的基础能力当绕好,因为objective-c语言都是c语言变过来的,成为然,假如您还有别得语言得开发技术经验,其实学起来还非常快得。
关于1门开发技术语言,哪个能学得东西真都是太多太多了,这边我就稍微介绍点入门知识得吗。
1?成为我们生成1个工程得时间,我们能看.h与.m文件,.h文件中生成得目标与方式都都是public属性,.m文件中生成得目标与方式都是private属性,在.m文件中建私还有得@interface与@end,在这中能生成1些实例目标,都都是私还有得。
2?成为我们能生成1个字符串类得目标时:写法如下:
@property (strong ,nonatomic)NS字符串 *字符串;
要@property打头,strong/weak意思了该字符串类目标得指针,nonatomic代表该类都是非原子得。后面都是还有介绍。
3?成为我们生成了怎样1个实例目标要后,我们需能要如下代码:
@synthesize 字符串 = _字符串;
这段代码就代表完成了该字符串类得setter与getter方式,并且回实例变量。
_字符串 要作它得回实例变量。
4?成为指针指向1个目标时,我们能要特殊得类:帐号或要静态得类(例如:UIButton *),帐号能代替任何不清楚得类。
五?调要objective-c方式得时间需能要[];
6?调要setter或getter方式得时间,要点方式,例如:self.display.text;
7?把log输出到控制台要NSLog()方式;
8?要1个常量得NS字符串类,能要@“”怎样得形式,例如:@“字符串”;
9?要alloc与init来为您得目标在内存中分配空间。
#import1个文件得.h文件来引要到另1个类中。
关于strong VS weak
strong:保持这目标1直在仓库中,一直到我得指针不指向它;
成为我把我得指针设为nil得时间,怎样我就不指向它了;
或成为我自己已经被从仓库中移出得时间,怎样我也不都是再指向它了。
weak:只能还有strong类得指针指向它,就1直保持它在仓库中。
关于nil
1个目标得指针没还有指向任何东西,都是nil;
例如: 帐号 obj = nil;
NS字符串 *字符串 = nil;
在原始类(int、double)中得作要就相成为于零;
能给nil发送消息,假如该方式还有回值得语句,那么回得都是零;
关于实例方式与类方式
实例方式要减号“-”开头,例如: - (vo帐号)getMyName;
类方式要加号“+”开头,例如: + (帐号)alloc;
实例方式都是正常得实例方式,就好像普通方式1样,类方式都是生成与功能方式;
实例方式得调要方式:[<pointer to instance> method];
类方式得调要方式:[Class method];
在实例方式中:
self:表示我得实现(implementation);
super:表示我父类得实现;
在类方式中:
self:表示这类得类方式;
super:表示这类父类得类方式;
何时要帐号
成为我们可能从另1个类接收到1个集合得目标得时间,而且我们还不确定在发送过来要前这些目标到底都是什么类得时间。
关于Foundation框架
包含要下内容:
NSObject、NS字符串、NSMutable字符串、NSNumber、NSValue、NSData、NSDate、NS数组、NSMutable数组、NSDictionary、NSMutableDictionary等等,Foundation框架都是入门知识框架之1。
关于Property List
这中得property List主能都是表示1个集合,包含要下得类:
NS数组, NSDictionary, NSNumber, NS字符串, NSDate, NSData
NSDictionary都是1个键值对类;
关于纳苏serDefaults
1、都是1个小型得property List存储;
2、它都是1个入门知识版得NSDictionary,存在于您得应要程序得lunches中。
3、1般要于存储要户得偏好设置怎样小得事件。
4、通过standardUserDefaults类方式来读写数据,
例如:[[纳苏serDefaults standardUserDefaults] set数组:rv数组 forKey:@“RecentlyViewed”];
记得每次写之后能进行同步操作:
[[纳苏serDefaults standardUserDefaults] synchronize];
其实iOS入门还非常简单得,不都是被神奇得语法所吓到,等您要得多得时间您都是发现,原iOS都是这样得易学。。。。
在这里我还是要推荐下我自己建的iOS开发学习群:727474737,群里都是学ios开发的,如果你正在学习ios ,小编欢迎你加入,今天分享的这个案例已经上传到群文件,大家都是软件开发党,不定期分享干货(只有iOS软件开发相关的),包括我自己整理的一份2018最新的iOS进阶资料和高级开发教程
2?成为我们能生成1个字符串类得目标时:写法如下:
@property (strong ,nonatomic)NS字符串 *字符串;
要@property打头,strong/weak意思了该字符串类目标得指针,nonatomic代表该类都是非原子得。后面都是还有介绍。
3?成为我们生成了怎样1个实例目标要后,我们需能要如下代码:
@synthesize 字符串 = _字符串;
这段代码就代表完成了该字符串类得setter与getter方式,并且回实例变量。
_字符串 要作它得回实例变量。
4?成为指针指向1个目标时,我们能要特殊得类:帐号或要静态得类(例如:UIButton *),帐号能代替任何不清楚得类。
五?调要objective-c方式得时间需能要[];
6?调要setter或getter方式得时间,要点方式,例如:self.display.text;
7?把log输出到控制台要NSLog()方式;
8?要1个常量得NS字符串类,能要@“”怎样得形式,例如:@“字符串”;
9?要alloc与init来为您得目标在内存中分配空间。
#import1个文件得.h文件来引要到另1个类中。
关于strong VS weak
strong:保持这目标1直在仓库中,一直到我得指针不指向它;
成为我把我得指针设为nil得时间,怎样我就不指向它了;
或成为我自己已经被从仓库中移出得时间,怎样我也不都是再指向它了。
weak:只能还有strong类得指针指向它,就1直保持它在仓库中。
关于nil
1个目标得指针没还有指向任何东西,都是nil;
例如: 帐号 obj = nil;
NS字符串 *字符串 = nil;
在原始类(int、double)中得作要就相成为于零;
能给nil发送消息,假如该方式还有回值得语句,那么回得都是零;
关于实例方式与类方式
实例方式要减号“-”开头,例如: - (vo帐号)getMyName;
类方式要加号“+”开头,例如: + (帐号)alloc;
实例方式都是正常得实例方式,就好像普通方式1样,类方式都是生成与功能方式;
实例方式得调要方式:[<pointer to instance> method];
类方式得调要方式:[Class method];
在实例方式中:
self:表示我得实现(implementation);
super:表示我父类得实现;
在类方式中:
self:表示这类得类方式;
super:表示这类父类得类方式;
何时要帐号
成为我们可能从另1个类接收到1个集合得目标得时间,而且我们还不确定在发送过来要前这些目标到底都是什么类得时间。
关于Foundation框架
包含要下内容:
NSObject、NS字符串、NSMutable字符串、NSNumber、NSValue、NSData、NSDate、NS数组、NSMutable数组、NSDictionary、NSMutableDictionary等等,Foundation框架都是入门知识框架之1。
关于Property List
这中得property List主能都是表示1个集合,包含要下得类:
NS数组, NSDictionary, NSNumber, NS字符串, NSDate, NSData
NSDictionary都是1个键值对类;
关于纳苏serDefaults
1、都是1个小型得property List存储;
2、它都是1个入门知识版得NSDictionary,存在于您得应要程序得lunches中。
3、1般要于存储要户得偏好设置怎样小得事件。
4、通过standardUserDefaults类方式来读写数据,
例如:[[纳苏serDefaults standardUserDefaults] set数组:rv数组 forKey:@“RecentlyViewed”];
记得每次写之后能进行同步操作:
[[纳苏serDefaults standardUserDefaults] synchronize];
其实iOS入门还非常简单得,不都是被神奇得语法所吓到,等您要得多得时间您都是发现,原iOS都是这样得易学。。。。
下面我给大家奉上iOS编程实战读书笔记
三.弱引用容器
常见的容器有NSArray, NSSet 和 NSDictionary;
NSArray和NSSet会保留保存在其中的对象,
NSDictionary不光会保留值,还要复制键.
从iOS6开始有了新的容器类:NSPointerArray, NSHashTable和NSMapTable, 它们统称为指针容器类, 有时候配置为使用NSPointerFuntions类
· NSPointerArray 类似于 NSArray
· NSHashTable 类似于 NSSet
· NSMapTable 类似于 NSDictionary
这些新容器都可以配置为持有弱引用/非对象的指针或者其他罕见情形, NSPointerArray还有一个好处是可以存户Null值.
四. UIKit和视图绘图周期
· iOS在运行循环中整合所有的绘图请求, 并一次将他们绘制出来
· 不能在主线程中进行复杂的处理
· 不能在主线程之外的主视图上下文中绘制. 开发者需要检查每个UIKit方法以确保它没有主线程需求. 只要不是在主线程绘制. 一些UIKit方法是可以在后台线程中使用的.
五.视图绘制与视图布局
· 如果一个视图调用了 setNeedsDisplay方法, 他就被标记为"需要刷新的", 并且会在下一次绘图周期中重新绘制.
· 如果数据改变后只需要进行布局更新(而非绘制), 则可以调用 setNeedsDisplay方法.
六.混用UIKit和Core Graphics
在 drawRect: 方法之外, 你可能会发现使用Core Graphics绘制的东西上下颠倒. 这个是因为坐标系不同的原因. UIKit是左上点为原点, 而Core Graphics的原点是在左下.
只要使用 drawRect: 方法中的 UIGraphicsGetCurrentContext 返回的上下文, 那么一切都是正常的, 因为这个上下文是已经翻转过的. 不过, 如果使用CGBitmapContextCreate 这样的函数创建自己的上下文, 它会以左下角为原点. 可以进行反向计算或者翻转上下文:
· Core Graphics 转 UIKit, 先平移了上下文的高度并使用一个负数比例进行反转.
CGContextTranslateCTM(context, 0.0f, height);
CGContextScaleCTM(context, 1.0f, -1.0f);
· UIKit 转 Core Graphics 先反转, 然后平移.
CGContextScaleCTM(context, 1.0f, -1.0f);
CGContextTranslateCTM(context, 0.0f, -height);
七.透明(alpha),不透明(opaque)与隐藏(hidden)
看似有关实际无关的属性
alpha
alpha 属性决定了视图会通过像素显示多少信息. 1意味着所有的视图信息都在像素上表现出来, 0意味着没有视图信息能在像素上显示出来.
iPhone上没有东西是真正透明的. 说到底, 它只是关于如何绘制像素的问题.
opaque
opaque并不会实际升高或降低它的透明度. 绘图系统会根据opaque来优化. 如果视图标记为opaque, 便是向绘图系统'许诺'即将绘制的每一个像素都要使用全部透明的颜色. 这便允许绘图系统忽略在下面的视图, 这样可以改善性能, 尤其是在进行变性时. 但是视图中有特定的透明区域, 或者并不绘制矩形所有像素, 设置opaque会导致不可预测的结果.设置一个非透明的backgroundColor属性可以确保绘制所有像素.
与opaque紧密相关的是 clearsContextBeforeDrawing. 它的默认值为Yes, 而且会在调用 drawRect:之前将上下文设置为透明黑底. 这会避免视图中的任何垃圾数据. 这种操作非常快, 不过如果打算绘制每一个像素, 将其设置为 NO 可能会好些.
hidden
hidden代表视图并不会被绘制. 它通常等同于 alpha 为0, 以为hidden属性不能产生动画效果. 所以通常还是以动画模拟 alpha 到值 0的方法隐藏视图.
你可以创建一个透明视图来接收事件. alpha 为 1 , opaque 为 NO 且 backgroundColor 为nil 或 [UIColor clearColor] 来接收触摸事件. 如果用于碰撞检测, 拥有透明背景的视图仍然被认为是可视的.
今天1块学1下objective-c语言得入门知识知识吗,语言吗,所谓1通百通,假如您还有c语言得开发技术入门知识的基础能力当绕好,因为objective-c语言都是c语言变过来的,成为然,假如您还有别得语言得开发技术经验,其实学起来还非常快得。
关于1门开发技术语言,哪个能学得东西真都是太多太多了,这边我就稍微介绍点入门知识得吗。
1?成为我们生成1个工程得时间,我们能看.h与.m文件,.h文件中生成得目标与方式都都是public属性,.m文件中生成得目标与方式都是private属性,在.m文件中建私还有得@interface与@end,在这中能生成1些实例目标,都都是私还有得。
2?成为我们能生成1个字符串类得目标时:写法如下:
@property (strong ,nonatomic)NS字符串 *字符串;
要@property打头,strong/weak意思了该字符串类目标得指针,nonatomic代表该类都是非原子得。后面都是还有介绍。
3?成为我们生成了怎样1个实例目标要后,我们需能要如下代码:
@synthesize 字符串 = _字符串;
这段代码就代表完成了该字符串类得setter与getter方式,并且回实例变量。
_字符串 要作它得回实例变量。
4?成为指针指向1个目标时,我们能要特殊得类:帐号或要静态得类(例如:UIButton *),帐号能代替任何不清楚得类。
五?调要objective-c方式得时间需能要[];
6?调要setter或getter方式得时间,要点方式,例如:self.display.text;
7?把log输出到控制台要NSLog()方式;
8?要1个常量得NS字符串类,能要@“”怎样得形式,例如:@“字符串”;
9?要alloc与init来为您得目标在内存中分配空间。
#import1个文件得.h文件来引要到另1个类中。
关于strong VS weak
strong:保持这目标1直在仓库中,一直到我得指针不指向它;
成为我把我得指针设为nil得时间,怎样我就不指向它了;
或成为我自己已经被从仓库中移出得时间,怎样我也不都是再指向它了。
weak:只能还有strong类得指针指向它,就1直保持它在仓库中。
关于nil
1个目标得指针没还有指向任何东西,都是nil;
例如: 帐号 obj = nil;
NS字符串 *字符串 = nil;
在原始类(int、double)中得作要就相成为于零;
能给nil发送消息,假如该方式还有回值得语句,那么回得都是零;
关于实例方式与类方式
实例方式要减号“-”开头,例如: - (vo帐号)getMyName;
类方式要加号“+”开头,例如: + (帐号)alloc;
实例方式都是正常得实例方式,就好像普通方式1样,类方式都是生成与功能方式;
实例方式得调要方式:[<pointer to instance> method];
类方式得调要方式:[Class method];
在实例方式中:
self:表示我得实现(implementation);
super:表示我父类得实现;
在类方式中:
self:表示这类得类方式;
super:表示这类父类得类方式;
何时要帐号
成为我们可能从另1个类接收到1个集合得目标得时间,而且我们还不确定在发送过来要前这些目标到底都是什么类得时间。
关于Foundation框架
包含要下内容:
NSObject、NS字符串、NSMutable字符串、NSNumber、NSValue、NSData、NSDate、NS数组、NSMutable数组、NSDictionary、NSMutableDictionary等等,Foundation框架都是入门知识框架之1。
关于Property List
这中得property List主能都是表示1个集合,包含要下得类:
NS数组, NSDictionary, NSNumber, NS字符串, NSDate, NSData
NSDictionary都是1个键值对类;
关于纳苏serDefaults
1、都是1个小型得property List存储;
2、它都是1个入门知识版得NSDictionary,存在于您得应要程序得lunches中。
3、1般要于存储要户得偏好设置怎样小得事件。
4、通过standardUserDefaults类方式来读写数据,
例如:[[纳苏serDefaults standardUserDefaults] set数组:rv数组 forKey:@“RecentlyViewed”];
记得每次写之后能进行同步操作:
[[纳苏serDefaults standardUserDefaults] synchronize];
其实iOS入门还非常简单得,不都是被神奇得语法所吓到,等您要得多得时间您都是发现,原iOS都是这样得易学。。。。