Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/35.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
iPhone开发中需要授权或目标C_Iphone_Objective C_Delegates - Fatal编程技术网

iPhone开发中需要授权或目标C

iPhone开发中需要授权或目标C,iphone,objective-c,delegates,Iphone,Objective C,Delegates,在iphone/ipad开发或目标C中,授权需要什么 我读了很多关于它的文章。所有人都在讲述如何实施这一概念,但没有人告诉我们为什么需要实施这一概念,在这种情况下,我们应该实施这一概念 委托是一种简单而强大的模式,其中一个对象在 程序代表另一个对象或与之协调。 委托对象保留对另一个对象的引用 委托,并在适当的时间向其发送消息。这个 消息通知委托人委托对象正在处理的事件 即将处理或刚刚处理。代表可对以下内容作出回应: 通过更新自身或其他对象的外观或状态来发送消息 在应用程序中,在某些情况下,它可以

在iphone/ipad开发或目标C中,授权需要什么

我读了很多关于它的文章。所有人都在讲述如何实施这一概念,但没有人告诉我们为什么需要实施这一概念,在这种情况下,我们应该实施这一概念

委托是一种简单而强大的模式,其中一个对象在 程序代表另一个对象或与之协调。 委托对象保留对另一个对象的引用 委托,并在适当的时间向其发送消息。这个 消息通知委托人委托对象正在处理的事件 即将处理或刚刚处理。代表可对以下内容作出回应: 通过更新自身或其他对象的外观或状态来发送消息 在应用程序中,在某些情况下,它可以返回 影响如何处理即将发生的事件。主要价值 委托是指它允许您轻松地自定义 一个中心对象中的多个对象

如果只想与一个对象对话,请使用代理。例如,一个 tableView有一个委托-只有一个对象负责 处理它

如果你想告诉每个人某事已经发生,请使用通知 发生了。例如,在内存不足的情况下,会发送通知 告诉你的应用程序有内存警告。因为很多 应用程序中的对象可能希望降低其内存使用率这是一个问题 通知


这是我问题的答案

假设你想在你的应用程序中实现登录功能。。。现在,您不会在每次运行应用程序时都显示登录屏幕。。只有在第一次启动时,您没有登录名和密码

所以在这种情况下

  • 您的应用程序启动:
  • 视图1加载(默认视图)
  • 您检查是否没有登录名
  • 加载新视图..(登录视图)
  • 用户输入他的详细信息。您将获得您的登录名和密码
  • 现在,您要返回默认视图并加载主应用程序 用户在登录视图中输入的名称

现在,您将使用委托将这些信息(登录详细信息)传递回默认视图,以便它知道其详细信息。现在有很多不同的方法来做这些事情…比如通知和单例类。。但当您想要发送3-4组以上的数据时。。最好使用委托

委托有两个关键好处:在不子类化的情况下自定义对象,以及改进封装

没有子类化的定制是使用委托模式的许多Cocoa和Cocoa Touch API的一个优点。如果他们没有这样做,那么每当您想通过使用不同类型的单元格或不同的数据源来更改UITableView的行为时,您可能必须对其进行子类化。相反,您只需设置表视图的委托和数据源以自定义其行为


至于封装,委托模式帮助您将代码的不同组件保持分离。例如,如果您的自定义视图需要一些数据,那么简单地让它访问您的模型,甚至完全访问您的控制器,将是一种不好的做法。相反,您可能会为您的视图设置某种委托协议,由您的控制器实现。这样,您的类之间就不需要了解更多的信息,这样,一个部分的更改就不太可能破坏其他部分。

想想iOS和Cocoa为您提供的所有组件。表视图、文本字段、弹出框等

当开发人员编写这些组件时,他们不可能知道美国开发人员将要使用这些组件创建的所有各种实现。但我们需要以一种通用的方式与他们沟通

这些组件使用代理。委托是一种独立于实现的方式,用于描述组件可以遵循的某些行为

当UITableView需要了解行的高度时,UITableView只需要了解有关UITableViewDelegate的信息。它不需要知道MyTableViewController、JohnTableViewController、BobsTableViewController。。。等等

因此,委托将组件与实现和类型分离


脱钩是一件好事。它使维护和更改代码变得更容易,并使代码可重用。

委派就像是当你问某人某件事时,你可以自己搜索它。。。()或()最简单的答案是:委托是回调规范。(如果你熟悉的话)谢谢你。它帮助我在脑海中树立了一个关于授权的形象。有人在这个问题上做标记吗?为什么它还没有关闭?请告诉我这个问题出了什么问题?先生,最近我用以下方式实现了登录的概念。。在appdelegate的方法“didFinishLaunchingWithOptions”中,我放置了一个条件语句,用于检查userdefault变量是否存在。如果存在,则使用addsubview方法将主屏幕添加到窗口,否则将添加到登录屏幕。成功登录后,我会将凭据保存在nsuserdefaults中,下次启动应用时会检查这些凭据。。与我的实现相关联的缺点是什么?thnx提前。没有缺点..正如我所说,有多种方法可以做到..但是登录类型的变量应该在应用程序中存储很长时间..但是假设您想知道用户在视图2中的文本字段中输入了什么..将其存储在用户默认值中并检索是一种不好的做法,因为它的使用可能已经结束在几分钟内…因此您只需将字段的文本传递给代理…值已检查。。你完成了你的功能,然后它就从内存中删除了。。