Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/design-patterns/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 将UI元素设置为单例是一种不好的做法吗?_Ios_Design Patterns_User Interface_Cocos2d Iphone - Fatal编程技术网

Ios 将UI元素设置为单例是一种不好的做法吗?

Ios 将UI元素设置为单例是一种不好的做法吗?,ios,design-patterns,user-interface,cocos2d-iphone,Ios,Design Patterns,User Interface,Cocos2d Iphone,尤其是在iOS和Cocos2d中。如果我需要很多类来交互,比如说CCScene或UIView,这是我应用程序中唯一的一个类,该怎么办?作为一个普通的单身汉,分享是正常的吗?这种方法的优点(如果有的话)和缺点是什么 您将无法创建元素的新实例-例如,如果要创建新视图或场景并替换旧视图或场景 您必须考虑来自不同线程的实例化 如果更改方法的签名,则必须更新许多类 我认为,如果元素是视图或其他类型元素的包装器,则最好实现该模式,并使您的所有类都使用该控制器/包装器 为UI组件使用单例是行不通的。。因为

尤其是在
iOS
Cocos2d
中。如果我需要很多类来交互,比如说
CCScene
UIView
,这是我应用程序中唯一的一个类,该怎么办?作为一个普通的单身汉,分享是正常的吗?这种方法的优点(如果有的话)和缺点是什么

  • 您将无法创建元素的新实例-例如,如果要创建新视图或场景并替换旧视图或场景
  • 您必须考虑来自不同线程的实例化
  • 如果更改方法的签名,则必须更新许多类

我认为,如果元素是视图或其他类型元素的包装器,则最好实现该模式,并使您的所有类都使用该控制器/包装器

为UI组件使用单例是行不通的。。因为
UIView
将只有一个
superView
。所以当你把它放在另一个地方,旧的位置就会消失。。您可以创建它的子类,创建一个通用组件,并在任何需要的地方使用它。