问题标签 [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.
objective-c - 在 Cocoa 应用程序中动态加载自定义插件(库)
我已经为 Mac OS X 开发了一个 Cocoa 应用程序。我想制作一些自定义插件(也带有接口)并在我的应用程序中动态加载它们。我的应用程序应该查看文件夹并检索所有文件(插件)并使它们在用户界面中可用。
有人可以建议我一个起点吗?
我怎样才能动态加载它们,插件必须是动态库或某事?
谢谢。
cocoa - 基于 Cocoa 文档的应用程序
我正在创建一个基于 Cocoa 文档的应用程序。我的应用程序是一个简单的绘图应用程序,它允许用户在画布上绘画并将文档保存为 JPG 或 PNG。我显然希望用户同时打开多个不相关的图纸并对其进行处理。
我的应用程序总是从一个空白的无标题画布开始,并让用户在画布上绘画。然后用户可以将绘图保存为 JPG 或 PNG。
我的应用程序只有“新建”、“保存”和“另存为”,但没有“打开”,因为我总是从空白画布开始,而且我没有将绘图保存为我自己的绘图格式的概念,并且允许用户稍后再次打开绘图进行编辑。
使用基于文档的应用程序是个好主意。在 Xcode 中创建基于 Cocoa 文档的应用程序项目时,我应该使用什么作为文档类型扩展。
iphone - Objective c 继承/协议混淆:UITableViewController
现在我正试图围绕Objective C和XCode。我正在玩弄UITableView
,我在分离背后的概念时遇到了问题
- UITableViewController
- UITableViewDelegate
- UITableView 数据源
我熟悉 MVC 模式,我从 Apple Developer Docs 中了解到,他们的框架使用委托来“专门化”类而不进行子类化,并且数据源类定义了如何将数据从模型映射到视图(如果我错了)。
当我通过选择New File.. > Cocoa Touch Class > UIViewController 子类(检查 UITableViewController 子类)创建 TableViewController 时,我很困惑地看到模板包含 UITableViewDelegate 和 UITableViewDataSource 中的所有函数,而没有在头文件中指定 TableViewController 实现了这些协议。UITableViewController 的文档说它“符合 UITableViewDelegate 和 UITableViewDataSource”。这是否意味着它实现了这些协议?
所以我的问题是: UITableViewController 仅仅是结合 UITableViewDelegate 和 UITableViewDataSource 的便利类,还是我遗漏了什么?如果我提供单独的 UITableViewDelegate 和 UITableViewDataSource,我是否需要 UITableViewController?
谢谢!
objective-c - 在通用应用程序中实例化设备特定视图控制器的正确模式是什么?
我是 Objective-C 的新手,所以请耐心等待。我从 Xcode4 中的 Universal App 模板开始构建我的应用程序。有一个约定,模板让您开始使用我试图坚持的约定。对于每个 View Controller,每个设备类型都有一个主文件和一个子类。例如:
在大多数情况下,这非常方便。大多数逻辑都在超类中,子类负责任何特定于设备的实现。
这是我不明白的部分。有时我的代码在每个子类中执行相同的操作只是因为我需要为每个设备加载不同的 xib。例如:
ExampleViewController_iPhone
ExampleViewController_iPad
...请注意,在第二种情况下,唯一不同的是它正在加载_iPad
View Controller 的版本。这是必要的,因为iPad
和iPhone
视图控制器附加到单独的设备特定 nib。
这样做的“正确”模式是什么?
更新
我找到了这个关于使用设备修饰符加载单独的 xib 的答案,这似乎在我不需要为一个设备提供特定子类的情况下有所帮助,但如果我需要实例化一个特定的_iPhone
或_iPad
实例,它仍然无济于事用于设备特定功能的视图控制器。
cocoa - Xcode 4 和带有 xibs 的控制器
我有一个带有 splitview 控制器的主 xib,并将 ibactions 和属性拖到 AppDelegate 代码上。
因此,在我的 applicationDidFinishLaunching 中,我想将一个使用 xib 的控制器加载到我已链接的一个 nsview 中。
问题是我不能使用 xcode 将新 xib 中的 ibaction 和属性链接到将要加载它的控制器中。
这必须以编程方式完成吗?
iphone - 什么是动态创作?
我最近读到动态创建是 Cocoa 中的一种设计模式。但是,我真的不明白它是如何工作的。所以我需要你在你的设计中实现的澄清。
- 它是什么?为什么以及何时使用这种设计模式?
我已阅读您
NSClassFromString()
用来访问课程的内容。我假设当我想使用我正在处理的项目中不存在的类时使用它。通常当我想使用某个类时,我将它们导入到标题中。使用这种方法会跳过这个#import
过程吗?我引用上面的代码作为例子。如果按照上面的代码做,那意味着我可以创建一个新的 JavaArrayList 类并使用其中的方法对吗?
/li>使用这种设计模式有什么好处?尤其是在 iPhone 开发方面。
iphone - 从 NSArray 获取单个属性的 NSArray
我正面临一个非常常规的情况。
我有一个 NSArray,它有一个自定义类型的对象,比如 Person。Person 类具有以下属性:firstName、lastName 和 age。
如何从具有 Person 对象的 NSArray 中获取仅包含一个属性的 NSArray?
就像是:
我有一个编写 for 循环并填写 firstNames 数组的解决方案,但我不想这样做。
objective-c - 为什么有些对象在objective-c中使用前不需要初始化?
为什么有些对象在objective-c中使用前不需要初始化?例如,为什么这是NSDate *today = [NSDate date];
合法的?
iphone - 在Objective-C中扩展嵌套类是否有好的/最好的方法?
有时框架对象将辅助类接口放在 *.m 文件中,例如:
Foo.m:
如果我想扩展 Foo,例如使用类别,有没有办法扩展 HelperObject?更一般地说,这样做是否违反封装?我应该尝试在不扩展 HelperObject 的情况下扩展类功能吗?
iphone - 在 App 中实现 iPhone App
我有两个应用程序,我想通过将较小的应用程序引入主应用程序来合并它们,这样较小的应用程序最初不是从它的 App Delegate 实例化,而是通过主控制器的现有导航控制器推送。
但是原始开发人员对应用程序的结构和原始应用程序委托单例有各种依赖关系,这使得在不重新安排代码的情况下推送它的主视图控制器并非易事......这需要时间。
人们通常如何采用标准的可可项目并将其转变为其他现有应用程序的功能,同时保留保持良好解耦的能力?