Objective-C
菜鸟在路上1956
这个作者很懒,什么都没留下…
展开
-
iOS中podfile及xxx.podspec中~>符号的含义
Well,~>(theoptimisticoperator) is used when you want to specify a version 'up to nextmajor|minor|patch'. For example:~> 0.1.2will get you a version up to 0.2 (but not including 0.2 and higher)~> 0.1will get you a version up to 1....转载 2020-09-19 23:21:08 · 735 阅读 · 0 评论 -
iOS常用设计模式
在软件开发中,无论是那种高级语言中总会伴随着一些最为常用的设计模式,下面针对iOS中,MVC模式、代理模式、观察者模式、单例模式、策略模式、简单工厂模式这六大模式进行汇总分析。一、MVC模式MVC是一种软件设计典范,用一种业务逻辑、数据、界面显示分离的方法组织代码,将业务逻辑聚集到一个部件里面,在改进和个性化定制界面及用户交互的同时,不需要重新编写业务逻辑1.1实例MVC(Mode...转载 2020-01-13 14:48:45 · 675 阅读 · 0 评论 -
《Objective-C编程 第二版》笔记21:Animation
UIView简单动画//UIKit集成的UIView上的动画,动画块 -(void)beginAndCommitAnimation { self.redView.frame = CGRectMake(100, 100, 100, 100); //开始设置动画 //参数1.当前动画的标签 //参数2.上下文,如果为动画设置...原创 2020-01-13 14:40:19 · 258 阅读 · 0 评论 -
《Objective-C编程 第二版》笔记20:NSURLSession
使用NSURLSession的步骤:第一步 通过NSURLSession的实例创建task第二步 执行task- (void)NSURLSessionRequest{ //创建URL NSString *URLPath = @"https://xxxx"; NSURLSession *sharedSession = [NSURLSession sharedS...原创 2020-01-13 14:12:46 · 277 阅读 · 0 评论 -
《Objective-C编程 第二版》笔记19:UICollectionView
UICollectionView是网格表视图,比如抖音的喜欢列表自定义一个UICollectionViewCell,- (id)initWithFrame:(CGRect)frame{ self = [super initWithFrame:frame]; if (self) { //设置CollectionViewCell中的图像框 ...原创 2020-01-13 11:40:38 · 161 阅读 · 0 评论 -
《Objective-C编程 第二版》笔记18:UITableView
这个是手机里的设置页面,这种是用UITableView实现的。UITableView有两种风格:UITableViewStylePlain和UITableViewStyleGrouped。上面的风格属于UITableViewStyleGrouped。UITableView中数据只有行的概念,没有列的概念。UITableView中每一行数据都是一个UITableViewCell。数...原创 2020-01-13 11:28:24 · 168 阅读 · 0 评论 -
《Objective-C编程 第二版》笔记17:protocol
作用协议是一组方法声明,其中部分方法是必需的,另一些是可选的。如何使用@required:遵守此协议的类必须实现它修饰的方法(默认修饰符)@optional:遵守此协议的类可以不实现它修饰的方法@protocol PersonProtocol <NSObject>@required- (void)eat;@optional- (void)run;@end...原创 2020-01-12 12:45:39 · 155 阅读 · 0 评论 -
《Objective-C编程 第二版》笔记16:Block对象
Block对象的示例:^{ NSLog(@"This is an instruction within a block.");}和C函数类似,但是没有函数名,相应的位置只有一个^符号。^表示这段代码时一个Block对象。和函数一样,Block对象也可以有实参和返回值。^(double dividend, double divisor){ double quot...原创 2019-11-12 22:53:04 · 154 阅读 · 0 评论 -
《Objective-C编程 第二版》笔记15:回调
本章将介绍事件驱动程序,这个程序能保持运行、等待事件,并做相应的处理。 回调就是将一段可执行代码和特定的事件绑定起来。 OC中实现回调的4中途径。 (1) 目标-动作对:在程序开始等待前,要求当事件发生时,向指定的对象发送某个特定消息。这里接收消息的对象是目标,消息的选择器是动作。 (2) 辅助对象:在程序开始等待前,要求...原创 2019-11-08 14:55:04 · 178 阅读 · 0 评论 -
《Objective-C编程 第二版》笔记14:通过NSString 和NSData将数据写入文件
1、将NSString对象写入文件首先创建一个名为Stringz的项目。通过NSString的类方法创建对象,然后将新创建的对象写入文件。#import <Foundation/Foundation.h>int main(int argc, const char * argv[]) { @autoreleasepool { NSMutableStr...原创 2019-10-24 10:57:52 · 177 阅读 · 0 评论 -
《Objective-C编程 第二版》笔记13:常量
不变的值称为常量。OC中有两种定义方式,#define和全局变量。输出常量M_PI#import <Foundation/Foundation.h>int main(int argc, const char * argv[]) { @autoreleasepool { NSLog(@"\u03c0 is %f",M_PI); } r...原创 2019-10-24 09:36:48 · 114 阅读 · 0 评论 -
《Objective-C编程 第二版》笔记12:Collection类
Collection类的实例用于保存指向其他对象的指针。1、NSSet/NSMutableSetNSSet对象包含的内容是无序的,而且每个特定的对象只能出现一次。NSSet对象最大的用处是检查某个对象是否存在。NSSet对象不能对指针进行修改。NSMutableSet是它的子类,它能够对其中的指针进行添加或删除等操作。NSSet对象中的对象是无序的,所以不能...原创 2019-10-24 09:14:03 · 208 阅读 · 0 评论 -
《Objective-C编程 第二版》笔记11:避免内存泄漏
事物之间的关系通常是双向的。事物属于某个人,某个人拥有物品。要想表明这种关系,有三种途径1、强引用循环 BNRAsset对象拥有BNREmployee对象,BNREmployee对象拥有BNRAsset对象的数组对象。这种互相拥有的关系就导致对象无法被释放。这种情况称为强引用循环。 通过苹果公司的性能分析工具Instruments可以...原创 2019-10-23 23:10:07 · 184 阅读 · 0 评论 -
《Objective-C编程 第二版》笔记10:类扩展
前面内容都是在类的头文件中声明属性、变量及方法。但是,不是所有的属性或方法都需要在类的头文件中声明。有的属性或方法只是该类或其类实例才使用的。涉及实现细节的属性或方法最好在类扩展中声明。类扩展是一组私有的声明。只有类和其类实例才能使用在类扩展中声明的属性、实例变量或方法。 类扩展是添加在类实现文件中,实现方法的@implementation之上。在BNREmployee.m...原创 2019-10-23 11:33:32 · 167 阅读 · 0 评论 -
《Objective-C编程 第二版》笔记9:对象实例变量及属性
对象实例变量是指向另一个对象的指针,可以描述相应两个对象之间的关系。对象实例变量的三种常见用途。(1) 对象属性。指针,指向某个单一的、代表某个值的对象。(2) 一对一关系。指针,指向单个复杂的对象。(3) 一对多关系。指针,指向某个collection类的实例。给BNREmployee类增加三个属性#import "BNRPerson.h"//@interface ...原创 2019-10-22 12:49:17 · 166 阅读 · 0 评论 -
《Objective-C编程 第二版》笔记8:继承
前面的笔记中定义的BNRPerson类,继承了NSObject类。因此,BNRPerson实例不仅拥有BNRPerson中定义的实例变量和方法,还拥有NSObject中定义的实例变量和方法。 打开BMITime项目,创建一个BNREmployee类。#import <Foundation/Foundation.h>//导入BNRPerson.h...原创 2019-10-22 09:48:12 · 168 阅读 · 0 评论 -
《Objective-C编程 第二版》笔记7:属性
声明属性可以简化存取方法。1、声明属性笔记6中的实例变量可以改成属性的声明,声明为属性就可以省略存取方法的书写。#import <Foundation/Foundation.h>@interface BNRPerson : NSObject//属性的声明@property (nonatomic) float heightInMeters;@property (n...原创 2019-10-17 08:43:40 · 170 阅读 · 0 评论 -
《Objective-C编程 第二版》笔记6:第一个自定义类
首先创建一个项目BMITime。1、创建类的过程File->New->New File...。选择OS X区域的Cocoa,选择Objective-C class模板,然后点击next按钮将类命名为BNRPerson,并设置为NSObject的子类。最后勾选BMITime目标,点击Create按钮。#import <Foundation/Foundatio...原创 2019-10-16 21:17:06 · 201 阅读 · 1 评论 -
《Objective-C编程 第二版》笔记5:NSArray
NSArray是常用的OC类。NSArray实例可以用来保存一组指向其他对象的指针。首先创建一个新项目DateList.1、创建数组#import <Foundation/Foundation.h>int main(int argc, const char * argv[]) { @autoreleasepool { //创建三个NSDate...原创 2019-10-16 19:53:46 · 149 阅读 · 0 评论 -
《Objective-C编程 第二版》笔记4:NSString
NSString也是OC的类,NSString实例可以保存字符串。1、创建NSString实例i) NSString *lament = @"Why me?";@代表根据给定的字符串创建一个NSString对象。ii) NSString实例可以保存任意Unicode字符。如果插入非ASCII字符,则可以使用\u,后面加上该字符的十六进制Unicode编码。如: NSString...原创 2019-10-16 18:51:56 · 139 阅读 · 0 评论 -
《Objective-C编程 第二版》笔记3:对象与内存
1、指针和指针的值创建一个新的项目TimesTwo。#import <Foundation/Foundation.h>int main(int argc, const char * argv[]) { @autoreleasepool { //在堆上创建实例,并在栈上有一个指针指向它 NSDate *currentTime = [N...原创 2019-10-16 18:02:23 · 126 阅读 · 0 评论 -
《Objective-C编程 第二版》笔记2:消息
1、传递实参的消息#import <Foundation/Foundation.h>int main(int argc, const char * argv[]) { @autoreleasepool { NSDate *now = [NSDate date]; NSLog(@"This NSDate object l...原创 2019-10-16 16:23:33 · 116 阅读 · 0 评论 -
《Objective-C编程 第二版》笔记1:对象
开发环境:Xcode7.3.11、类负责描述某个特定类型的对象,其中包括方法和实例变量。类可以描述一下两种对象。(1)抽象概念,例如数据、字符串或指令集。(2)实际存在的事物,例如人、地点或储蓄账户。2、创建并使用对象(1)首先创建一个OC程序TimeAfterTime。可以参考https://blog.csdn.net/qq_36214481/article/details/...原创 2019-10-16 12:43:08 · 179 阅读 · 0 评论 -
《Objective-C编程 第二版》笔记:如何用Xcode创建一个程序
本文使用的是Xcode7.3.1.1、打开Xcode,如下图所示,然后点击Create a new Xcode project:2、可以选择OS X下面的Application并选择右侧的Command Line Tool创建一个命令行程序。3、 给程序命名,包括程序名,组织名等,还要根据需要选择语言。4、创建完成后,就可以书写自己的代码了。点击main.m就可以在中...原创 2019-10-15 15:53:13 · 235 阅读 · 0 评论 -
Assertion failure in -[UIApplication _runWithMainScene:transitionContext:com
*** Assertion failure in -[UIApplication _runWithMainScene:transitionContext:completion:], /BuildRoot/Library/Caches/com.apple.xbs/Sources/UIKit_Sim/UIKit-3512.60.7/UIApplication.m:3401错误原因在于 A...转载 2019-10-14 08:35:15 · 928 阅读 · 0 评论 -
虚拟机搭建xcode开发环境
闲着无事,自己装了一个mac系统的虚拟机,并且安装了xcode,用来开发Objective-C.1、首先是软件准备vmware版本:12.5.0.unlocker版本:3.0mac os版本:10.11.1下载地址:链接:https://pan.baidu.com/s/1tWn0haJOMhR1XT6cZS4RSw提取码:ef4y2、逐个安装 (1...原创 2019-09-30 16:02:14 · 2910 阅读 · 1 评论