问题标签 [cocoa-design-patterns]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
iphone - 带核心数据的分段控制器(多选)
我有一个基于核心数据的应用程序,它是围绕一个主要实体构建的。还有其他几个与之相连的实体,其中之一是一个名为“Notes”的实体。
此 Notes 实体具有日期 (NSDate)、说明 (NSString) 和一个其他属性。该属性将有 4 个可能的选项,其中每个实体至少有 1 个,可能全部有 4 个。
我在想,当创建注释时,可能会有一个带有 4 个可能选项的分段控制器。(这里甚至可以选择多个按钮吗?)
我还希望能够通过此选项对所有这些笔记进行排序。也就是说,例如,创建一个仅返回选择了选项 3 的 Notes 的获取请求。(即使他们也选择了选项 2,甚至选择了所有 4 个选项。)
关于实现这一点的最佳方法的任何建议是什么?
谢谢。
iphone - iPhone 中的 XML 解析模式
我有一个 Web 服务,它返回某些“模型”,这些“模型”都是由objective-c 中的一个类定义的。对 RESTful 方法的调用将返回单个模型 XML 或模型 XML 元素列表。
或者
我试图想出一种方法来组织我的类,使解析对象或对象列表很容易,最终添加更多模型对象也很容易。它显然会涉及每个“模型”的代表,但是您如何以一种简单而优雅的方式组织它。每个模型对象的 xml 委托?如何处理列表?也许某种类型的列表委托对象将根据某个列表引用正确的单个模型委托?(即:小部件-> 小部件委托)
我将有一个单独的类来提供 web 服务中的所有方法。
我想它实际上更像是一个面向对象设计模式的问题,而不是其他任何问题。
iphone - Objective C 术语:出口和代表
我在理解 iPhone 如何处理事件的网点概念时遇到问题。帮助!代表们也让我感到困惑。有人愿意解释一下吗?
iphone - 使用 UITabBarController 时如何共享 ManagedObjectContext
我有一个 iPhone 应用程序,它有一个 MainWindow.xib 持有一个 UITabBarController,它又在它的 ViewControllers 数组中有一个 UINavigationController 和一个自定义 UIViewController 子类。UINavigationController 的根视图控制器和自定义视图控制器都是从其他 xib 文件加载的。
该应用程序使用核心数据,堆栈在应用程序委托中初始化(按照约定)。
应用程序委托将 UITabBarController 添加到窗口:
我意识到我需要传播一个指向在应用程序委托中创建的 ManagedObjectContext 的指针,但我不知道如何继续(即使在此处和此处阅读有关该主题的所有好的评论):
- 我是否将 ManagedObjectContext 传播到 UITabBarController 并从那里传播到各个视图控制器,如果是,如何传播?
- 或者我是否将 ManagedObjectContext 直接传播到 UINavigationController 的根视图控制器和自定义视图控制器,我该怎么做?
我想我不太了解如何使用 UITabBarController。
iphone - 如何判断一个对象是否已经被分配,所以它没有被多次分配?
请善待..我是这个东西的菜鸟。我想通过一个我多次调用的方法来分配和使用一个对象,而不是让它成为一个全局变量并在我的 initWithFrame 方法中分配它,我只想在一个方法中分配它,并使它成为一个局部变量我当时分配然后使用。
iphone - 带有 2 个 NSMutableArrays 的 UIPickerView?
我有一个我正在开发的基于核心数据的应用程序,它使用 EditingViewController 来控制许多不同的 UI 元素,这些元素从用户那里获得输入,这些元素描述了随后存储在我的应用程序中的对象的属性。EditingViewController.xib 文件包含 datePicker、textField、numberSlider 等元素,而我的问题来自 UIPickerView,这些元素都使用.hidden = YES/NO;
表达式在一个视图中进行控制。我的问题是我需要在两个单独的屏幕中填充 UIPickerView,这需要有两个不同的 NSMutableArray 源。在我的 viewDidLoad 方法中,我设置了我的第一个 NSMutableArray:
之后,我使用以下代码填充我的 UIPickerView *picker:
这适用于第一个属性和数组。So then after that, when a different uitableviewcell is selected, the picker is hidden picker.hidden = YES;
and I need to have another picker, picker2 show up with a different array of information. 但是当我尝试复制该过程时,通过设置一个全新的选择器,将其命名为 picker2,并尝试使用我在第一个旁边创建的不同 NSMutableArray 填充它(再次,这一切都是因为在我的 EditingViewController 中,它都是一部分相同的视图,只是根据视图调用不同的 UI 元素)我无法让 picker2 填充新数组。我不知道如何设置它以便可以填充我的两个不同的数组。我需要两个选择器视图吗?可以只用一个吗?什么是正确的语法- (NSString *)pickerView:(UIPickerView *)picker titleForRow:(NSInteger)row forComponent: (NSInteger)component;
使两个数组分别可见的方法?我希望有人可以帮助我解决这个问题,在此先感谢您!
iphone - 如何在 Xcode iphone 应用程序中创建多个页面
我开始使用 iphone sdk 的经验。我有一个问题,我正在尝试为应用程序创建两个页面,但我不知道如何链接它们或设计它们。就像当我启动 Xcode 时,我在其中找到一个名为 View 的页面来设计,我想让该页面成为欢迎页面,然后用户选择他在该页面中看到的三个选项之一。一旦他点击其中一个,程序就会将他带到下一页或他选择的页面。
谢谢你
cocoa - OSX:获取应用程序窗口 + 边界
有没有办法从另一个应用程序及其边界获取窗口列表。例如,使用 F-Script 或 obj-c 或任何其他方式(AppleScript 除外)来访问另一个(任何其他)基于 Cocoa 的应用程序的窗口内容并可能对其进行修改?
我说的是 1)访问数据(如http://the.layersapp.com/所做的)和 2)修改它
...外部
iphone - UIButton - 我们应该释放还是不释放?
我想在视图上动态添加一个按钮。这是代码。
在这里,我没有使用“alloc”功能。
该陈述的问题如下。
- 如果我们在相同的情况下使用 imageview,我们必须创建一个临时 imageview 添加到您当前的视图并释放它。按钮怎么办?
- 按钮是如何分配和取消分配的?
- 如果分配按钮?它的内存是如何管理的?
- 现在当我使用 [x release]; - 是对还是错?
iphone - 我应该如何处理 Objective-C 中同一个委托的多个回调的需要?
我创建了一个库,可以下载 JSON 数据,然后将其放入 NSDictionary。我用一个简单的 Twitter 引擎包装这个类,它允许我拉我朋友的时间线,发布更新并发布带有我的 GPS 位置的更新。根据我对 Objective-C 的有限经验,连接一切的方法是委托。我设置了一个委托属性,它将异步结果回调到选择器或方法签名。我什至可以在委托上创建一个可选或必需的接口,这将允许 Xcode 帮助我实现委托。为了了解如何在 Objective-C 中使用委托,我创建了这个简单的项目。
http://www.smallsharptools.com/downloads/ObjC/Delegates.zip
它定义了一个 Worker 类,它允许您使用委托初始化该类。当使用 doWork 方法完成工作时,它会在委托上查找方法签名以将消息发送回给它。它使用以下代码。
它寻找 workFinished: 方法来传回消息。我将此方法签名声明为可选接口,并在标头 Worker.h 中使用以下代码。
您可以从下载中查看项目的其余部分以获取所有详细信息。但是这两个代码片段展示了这种委托模式是如何工作的。但是对于 Twitter 类,我需要知道启动异步操作的方法的上下文,该操作会导致对委托方法的回调。如果我从调用类中多次调用 sendUpdate 方法,我应该如何知道回调的上下文?
通常使用 JavaScript、Java 或 C# 之类的语言,我会创建一个可以访问起始上下文的内联闭包或匿名类,但目前 iPhone 上的 Objective-C 不可能。我发现这个问题已经在 StackOverflow 上提出并回答了。
所以我所做的是跳过可选接口,而是传入一个选择器,当异步操作完成时 Twitter 类将调用该选择器。开始此操作的调用看起来像...
此代码首先使用 self 作为委托初始化引擎引用。为了附加我在选择器中发送的回调,这些选择器最初在 sendUpdate 方法签名上,但方法调用变得很长。我选择简单地设置选择器的属性。这一切都有效,但我不确定我是否喜欢它的工作方式,因为它只能部分解决我的问题。
为了完成这个示例,我完成了异步工作并最终在内部调用了一个方法,该方法查找给定的选择器并在它被定义时调用它。
我可以传入状态消息以作为 Twitter 更新发送,但我仍然没有发起呼叫的上下文。如果我想多次调用 sendUpdate 并且第一个异步调用仍在运行怎么办?如果第二个电话先完成怎么办?他们都将 self 作为委托,因此我必须以某种方式跟踪上下文或将它们传递给不同的选择器以区分它们,这也不能满足我的需求。如果我有 3 或 4 或 5 个异步调用会发生什么?我需要知道哪些已成功发送以及何时完成。
看来我能做到这一切的唯一方法是创建一个类,该类包含上下文所需的所有属性,让该类充当调用异步 Twitter 方法的委托,然后向父级报告可能是 UIViewController 的类。我会采用这种方法,但我还没有阅读过这种方法,也没有看到任何这样做的示例代码。
你会怎么办?您将如何处理多个异步调用,这些调用可能以不同于外出的顺序结束,然后在完成时使用上下文处理它们?