IOS开发笔记 - 先有鸡,还是先有蛋?相互引用的奇遇!
"世界上到底是先有鸡后有蛋,还是先有蛋后有鸡?"这是一个古老的哲学命题。
几千年来,许多哲人都曾试图解答这个问题,然而又都找不出令人信服的论据,所以直至今天,这个问题仍然没有定论。
--在编程的世界里,也是有着这么一个传说:两个类相互引用,那到底是先引用哪个类呢?
刚刚在编码的时候就遇到了这么一个奇特的问题,互相引用的两个类,代码似乎写得没什么问题,但一旦编译就出错了…这点,在最终解决了Error及Waring之后还是解答不了。
情景还原:由于业务需求,需要用到两个视图的相互跳转,因此需要分别对两个类进行引用,所以做如下编码。
AccountViewController.h文件源码
#import <UIKit/UIKit.h>
#import "AccRegViewController.h"@interface AccountViewController : UIViewController
-(IBAction) btnLoginClick:(id)sender;
-(IBAction) btnWClick:(id)sender;
@property (nonatomic,retain) IBOutlet UITextField *txtName;
@property (nonatomic,retain) IBOutlet UITextField *txtPwd;
-(void) doReg;
@property (nonatomic,retain) AccRegViewController *regView;
@end
AccRegViewController.h文件源码
#import <UIKit/UIKit.h>
#import "AccountViewController.h"@interface AccRegViewController : UIViewController
@property (retain ,nonatomic) AccountViewController *loView;
-(void) doLogin;@end
这样写似乎没什么错误,但一旦编译,机智的编译器就会这么说:
这没错啊!!!肿么会酱紫?
于是…把import分别改成了class试试…
@class AccRegViewController;
@class AccountViewController;
好啦,这样应该没问题了把!
但这次机制的XCODE把ERROR去掉了,给俺来了几个WORING!……
这不合适吧,少年,编码容易嘛,别动不动就error woring的,真是受不鸟啊~
------------------解决方案-------------------
最终的解决方案是:
在各子的实现文件即.m中对两者的头文件都进行引用
#import "AccRegViewController.h"
#import "AccountViewController.h"
这样的话就把两者都相互引用了,nice啊,这个代码在我个人看来太有意思了。
直到现在,我还是不清楚哪个类先引用了另一个类,但能肯定一点的是BUG解决了。
IOS开发笔记 - 先有鸡,还是先有蛋?相互引用的奇遇!相关推荐
- 移动项目开发笔记(管理不同解决方案下的DLL文件相互引用之心得体会)
当项目比较庞大时候Dll文件的管理显得就尤其重要了,比如多个解决方案有不同项目之间的引用,如果引用的路径都指向某项目bin下的dll文件的话,dll维护起来很不方面,因此遇到这种情况的话该怎么更好的管 ...
- iOS开发笔记-两种单例模式的写法
iOS开发笔记-两种单例模式的写法 单例模式是开发中最常用的写法之一,iOS的单例模式有两种官方写法,如下: 不使用GCD #import "ServiceManager.h"st ...
- IOS开发笔记之推广安装(用网页判断是否安装App)
IOS开发笔记之推广安装(用网页判断是否安装App) 在做App推广的时候,我们经常会用到网页链接下载,亦或是一张二维码,最常见的做法就是将App在iTunes中的下载链接嵌入,当用户扫描或者点击网页 ...
- IOS开发笔记2-C语言基础复习
转载请标明出处: http://blog.csdn.net/hai_qing_xu_kong/article/details/53439812 本文出自:[顾林海的博客] 前言 在正式进入ios开发前 ...
- IOS开发笔记1-写一个hello world!程序
转载请标明出处: http://blog.csdn.net/hai_qing_xu_kong/article/details/53227222 本文出自:[顾林海的博客] 序言 从今天开始正式踏上io ...
- IOS开发笔记之常用的第三方库(太多了。)
图像: 1.图片浏览控件MWPhotoBrowser 实现了一个照片浏览器类似 iOS 自带的相册应用,可显示来自手机的图片或者是网络图片,可自动从网络下载图片并进行缓存.可对图片进行缩放等操作. ...
- iOS开发笔记 -- 推送证书的创建及合并
iOS开发推送功能 在这里整理一下推送的步骤希望对大家有所帮助 推送证书,有效期限制一般为一年.当我们证书过期的时候,就需要重新生成证书了 . 我从头开始,也就是,你的开发者账号是空空的,什么都没有开 ...
- iOS开发笔记(二):block循环引用
写这篇文章的缘由是第一次面试时被问到了block循环引用的问题,当时回答的不是很好,首先要明确的是,block是否用copy修饰决定不了循环引用的产生,在此再一次进行补强,有不对的地方还请多多指教. ...
- iOS开发笔记 - 界面调试神器Reveal
http://blog.csdn.net/jackfrued/article/details/50934092 Reveal是iOS开发工具中的神器之一,它能够在应用程序运行过程中调试应用程序界面. ...
最新文章
- 多屏互动电脑版_MAXHUB无线双频同屏器HDMI连接投影仪手机电视机笔记本电脑投屏器多屏互动 MAXHUB传屏盒子WB01标配2个无线传屏...
- linux下tty,控制台,虚拟终端,串口,console(控制台终端)详解
- good things will come late
- scala简明教程:偏函数、高阶函数、Future异步编程、隐式转换
- linux的lnmp环境,Ubuntu 16.04 LTS下LNMP环境配置简述
- 埃氏筛法的一般写法(区间筛法)
- 1282:最大子矩阵《信息学奥赛一本通》
- Git教程(二)-如何上传和同步自己的git项目
- 择师论(怎么有效的向别人学习)
- 华军java_Java SE Runtime Environment 8
- Testing a React+Redux web application
- kali linux下sqlmap使用教程
- 用Python做的整蛊小程序——整点阴间的东西
- 2020年CSP-J2 CSP-S2 复赛题解
- 什么是 知足者常乐?
- 发完牢骚和惆怅,就继续去看paper吧
- 数学基础知识-排列与组合
- 判别一个分解的无损连接性
- BiLSTM+CRF实现AI诗人与长短记忆网络
- some words from website
热门文章
- 华为机试HJ93:数组分组
- android 动态添加listview,动态向listView Android添加元素
- linux 指定范围内查找文件,Linux Find命令查找指定时间范围内的文件的例子
- maxcompute操作_MaxCompute问答整理之9月
- python中实例和对象的区别_通过Python中对象实例的属性比较对象实例是否相等
- 学生用计算机记录表,计算机教室学生上机记录表第14周
- 爬虫入门-京东评论爬取和简单分析[学习笔记]
- 21天Jmeter打卡Day20 响应断言,JSON断言
- 软件测试:我该坚持在一个人的岗位还是辞职?
- java数组变量_关于java 的数组引用变量