首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Objective-C的集合

下面详细的介绍Objective-C的集合以及每个集合的用法,学过其他面向对象编程语言的小伙伴们看到OC的集合会有种莫名的亲切感,理解起来问题不大,可以类比Java的集合去学习...Objective-C的集合主要包括不可变的数组--NSArray,  可变的数组--NSMutableArray,   不可变的字典--NSDictionary,    可变的字典--NSMutableDictionary...,必须先把数据类型转换成对象,然后再存入集合。...NSArray也是OC的一个对象,使用NSArray也需要进行实例化,前面的博客的初始化中提到了便利初始化函数和便利构造器,NSArray也少不了这两样东西我们可以通过NSArray的便利初始化函数或者便利构造器进行...OC给我们提供啦一个专门来把基本数据类型封装成对象,这个就是NSNumber.     ​    ​    ​1.

1.1K70

Objective-CNSArray的解读

Objective-CNSArray的解读     NSArray数组Objective-C语言中常用的也是重要的一个,除了开发中常用到的一些基础功能,NSArray及其相关还封装了许多更加强大的功能...:(NSUInteger)index; //初始化方法 - (instancetype)init; //通过C语言风格的数组创建NSArray对象 需要注意,C数组需要为Objective对象,cnt...nullable ObjectType)firstObjectCommonWithArray:(NSArray *)otherArray; //将数组中一定范围的元素读取到一个C数组...opts usingBlock:(void (^)(ObjectType obj, NSUInteger idx, BOOL *stop))block NS_AVAILABLE(10_6, 4_0); //一个下标集合枚举...passingTest:(BOOL (^)(ObjectType obj, NSUInteger idx, BOOL *stop))predicate NS_AVAILABLE(10_6, 4_0); //同上 一定下标集合遍历

1.3K20
您找到你想要的搜索结果了吗?
是的
没有找到

Objective-C浅谈面向对象

接触面向对象也有一段时间了,当时是通过C++学习的OOP,后来又接触到了PHP和Java。...简单的说来,便利构造器是为了简化对象的初始化而生的,之前的博客也说了一嘴:编程是间接的过程,其实使用便利构造器就是间接的过程。程序处处都用到了间接。...而便利构造器是方法,返回的是对象,便利构造器做了两件事:一个是给对象分配空间,第二个是调用便利初始化函数进行数据的初始化。...OC是由接口(interface)和实现(implementation)两部分构成的。OC是通过两个单独的文件定义。....面向对象可以声明子类的变量     ​    ​    ​    ​    ​3.

1K60

iOSOC给Category添加属性

引: 很多人知道可以用Category给已有的添加一些新方法,但是不同于swift的extension,Objective-C的Category(类别)是不支持直接添加属性的,那如果就是需要添加新的属性怎么办呢...,使用的时候,只需要import你创建的Category,使用的时候还是使用原来的,但是你会惊奇的发现他支持你自己Category添加的方法。...工程按住command+N来添加新文件,选择Objectiv-C File: 在出来的界面的File Type选择Category,就是创建类别文件了,File填写我们要加在类别尾巴上的名字,Class...浅析,这里只讲怎么用来添加属性,我们setter方法里关联一个对象,getter方法里获取对应key关联的对象,就可以啦,代码如下,很简单: //UINavigationController+Cloudox.h...*nav = [[UINavigationController alloc] initWithRootViewController:vc]; self.window.rootViewController

1.2K10

iOS开发·UIWindow与视图层级调整技巧(makeKeyWindow,resignKeyWindow,makeKeyAndVisible,keyWindow,windowLevel,UIWind

为App初始化一个默认UIWindow对象 AppDelegate.m需要初始化一个window属性,作为后面往App添加视图的容器 1....UINavigationController对象的rootViewController为UIViewController对象。...如果想显示一个UIWindow,同时设置为keyWindow,并将其显示同一windowLevel的其它任何UIWindow之上 - (void)makeKeyAndVisible PS: 上述方法真的会将其显示同一...UIWindowLevelAlert; UIKIT_EXTERN const UIWindowLevel UIWindowLevelStatusBar __TVOS_PROHIBITED; 例如,在手势相关调整自定义的...>> ) 此时,断点在手势相关,也可专门查看AppDelegate.m的window属性:假设UIWindow *delegateWindow = [[[UIApplication sharedApplication

7.7K10

属性“__attribute__”Objective-C的应用

属性“__attribute__”Objective-C的应用       关于__attribute__,你可能用的不多,但是一定经常见到,系统的Foundation框架,__attribute...8. objc_requires_super       这个属性用来修饰Objective-C的方法,如果子类进行了重写,重写的方法没有调用父方法,则会进行编译器提示。...实际编程,很多时候,都是由于子类重写了父的方法造成不可预知的问题,通过使用这个属性可以有效的对开发者进行提示,例如: ?...10. overloadable       C语言中,对于相同的函数名,哪怕参数不同,也不能够重复定义。...11. objc_runtime_name       这是一个很有趣的属性,其可以运行时改变Objective-C名,但是不会影响其行为。

2.3K20

iOS自动登录

概要 很多APP为了用户使用方便都加入了自动登录 假设APP的第一个页面是登陆页面,登录后进入主页、 第一种自动登录方法 只登录页面进行判断,如果用户是自动登录,那么再跳转到主页面,这种方法实现起来相对简单...,但是每次登录都要显示登录页面,不人性化 另一种方法 根据保存的值判断是否自动登录,直接设置软件的第一个页面 代码如下 func application(application: UIApplication...MainViewController; let navi = UINavigationController(rootViewController: mainViewController)...rootViewController = loginViewController; } } 如上述例子所示 登陆页面是不受UINavigationController管理,而主页面是受UINavigationController...管理的,只需要在didFinishLaunchingWithOptions方法设置rootViewController对应的Controller就行了

87220

iOS多控制器之UINavigationController&UITableBarController1. 多控制器2. UINavigationController3. UITableBarCont

D 控制器A被称为控制器B、C、D的“父控制器” 控制器B、C、D的被称为控制器A的“子控制器” 为了便于管理控制器,iOS提供了2个比较特殊的控制器: UINavigationController...时, 可以通过initWithRootViewController:方法传入一个控制器作为根控制器 这个根控制器永远处于栈底(如果栈只有一个对象,那么根控制器也处于栈顶) 设置UIWindow的rootViewController..._window.rootViewController = nav; // 让当前窗口成为主窗口并显示 [_window makeKeyAndVisible];...UITabBarButtonUITabBar得位置是均分的,UITabBar的高度为49。 UITabBar的结构⼤大致如下图所示: ?...:c1]; tb.viewControllers=@[c1,c2,c3,c4]; 注意:展示的顺序和添加的顺序一致,和导航控制器不同,展现在眼前的是导航控制器的根视图控制器也就是第一个添加到导航控制器上的视图

1.2K40

__init__设置对象的父

1、问题背景Python,可以为对象设置一个父,从而实现继承。但是,如果想要在实例化对象时动态地指定父,则会出现问题。...例如,以下代码试图实例化Circle对象时,将它的父设置为Red或Blue:class Red(object): def x(self): print('#F00')class...(parent=Blue)blue_square = Square(parent=Blue)但是,这段代码会报错,因为Python,对象的父只能在定义时指定,不能在实例化对象时动态设置。...第一个解决方案是使用工厂。工厂是一个函数,它可以动态地创建工厂,可以根据传入的参数来决定创建哪个。...依赖注入是一种设计模式,它可以将对象的依赖关系从对象本身解耦出来。这样,就可以实例化对象时动态地注入它的依赖关系。

8010
领券