草庐IT

cocoa-design-patterns

全部标签

cocoa-touch - 如何防止在 UIScrollView 中手动缩放

希望有人能帮助解决这个问题。我有一个派生自UIScrollView的类,我想阻止用户通过手动捏合和滑动手势进行缩放或滚动。所有View导航都将通过编程方式控制,以响应用户点击的位置(想想电子书阅读器,点击显示屏的左侧或右侧会导致View滚动一个页面宽度)。关于如何实现这个有什么建议吗? 最佳答案 在您的-(void)viewDidLoad;上,您应该能够禁用任何您想要的手势识别器。在这种情况下:UIPinchGestureRecognizer*pinchRecognizer=self.pinchGestureRecognizer;p

cocoa - 在 Cocoa 中通过 TCP 发送大文件的最佳方式

我正在设计一种通过TCP数据包发送的协议(protocol),有时可以在iOS和OSX设备之间发送大型(视频)文件。我有三个问题:1)为了获得良好的性能,每个TCP数据包的最大大小是多少?即:是接近65535并让TCP分解数据更好,还是尽量保持在某个阈值以下。如果是后者,是什么?2)从文件中读取数据缓冲区并通过TCP套接字发送的开销最低的方法是什么?与Cocoa中的情况一样,有多种方法:NSInputStream-NSFileHandle-POSIX文件句柄3)将从TCP套接字接收的数据附加到文件的开销最低的方法是什么?我们有:NSOutputStream-NSFileHandle-P

cocoa - 为什么苹果说 NSFileHandle 不应该用于网络?

Apple说here“不要将NSSocketPort(OSX)或NSFileHandle用于一般套接字通信”。现在我正在努力调试套接字断开连接问题。如果我们使用NSFileHandle会有性能问题吗?他们不鼓励使用NSFileHandle只是因为NSStream有助于轻松调试吗?提前致谢。 最佳答案 继续阅读。您链接到的文档解释了为什么您不应该使用NSFileHandle进行网络连接:TheNSFileHandleclasscircumventsthestandardnetworkingstack,whichcarriesthefo

tcp - 给定 TCP,当 IO 是非阻塞时,State Design Pattern 是否用处不大?

在我的TCP应用程序中,只要IO处于阻塞状态,状态设计模式似乎就很有用。我的SwingWorker的doInBackground()可以通过引用一个对象循环访问TCP连接中的读取、写入和接受状态。请参阅维基百科讨论页上的示例:http://en.wikipedia.org/wiki/Talk%3AState_pattern.然而,当我将服务器重构为非阻塞IO时,它似乎不再有用了。Select()返回一组准备好进行IO的channel,这些channel通过引用一系列if语句中的SelectionKey状态来处理。任何人都可以根据经验或理解来确认当IO是非阻塞时状态设计模式是否仍然有用?

cocoa - 访问 Swift 字典的可选值

我将从JSON解析的字典定义为[String:AnyObject]然后我尝试访问它的值;varvote:Int?ifletvoteValue:AnyObject=dictionary["vote"]{self.vote=voteValueas?Int}有没有更简单/更干净的方法来做到这一点? 最佳答案 只能想到:varvote:Int?vote=dictionary["vote"]asAnyObject?as?Int 关于cocoa-访问Swift字典的可选值,我们在StackOverf

swift - 如何在Swift中美化缓存 "pattern"?

我的Swift项目中有一个设置服务,它为我的应用程序中可用的所有设置定义了变量。为了仅在绝对必要时访问NSUserDefaults(为了避免不必要的延迟),我对这些设置使用了缓存变量:classSettingsService{structUserDefaults{staticletSetting1="Setting1"}privatevarsetting1Cache:Bool?varsetting1:Bool{get{ifletvalue=setting1Cache{returnvalue}letvalue=NSUserDefaults.standardUserDefaults().b

iOS 应用程序开发 (iPad) : Does Swift support self designed GUI and openGL?

我是iOS应用开发的初学者。我已经在Windows中使用Qt和openGL完成了一个程序。现在我要开发一个iOS版本,确切地说是iPad。然而,它们是完全不同的。我打算用Xcode和Swift开发iOS版。我想知道Swift是否支持自行设计的GUI,如CSS和openGL。它们都是我应用程序的必要部分。如果没有,有没有强大的iOS应用GUI设计工具?谢谢。 最佳答案 Swift不使用HTML或CSS,但有内置的对象,例如按钮和文本字段,它们具有属性检查器,您可以在那里更改它们的属性,例如大小、颜色、边框等。您可以单独设置它们的约束,

xcode - 在 Swift Cocoa 中,如何请求一次提升的权限而不需要再次请求?

我正在尝试编写一个应用程序来编辑存储在中的文件/private/etc/hosts通常,我必须从终端使用sudo写入此文件,所以我认为我的cocoa应用程序需要提升权限。我希望请求一次,然后以某种方式存储许可,这样我就不需要再次请求了。我不知道从哪里开始。 最佳答案 执行此操作的正常方法是使用帮助程序进行所需的更改,然后在运行帮助程序时请求管理员权限。参见thisquestion有关请求管理员权限的更多信息。 关于xcode-在SwiftCocoa中,如何请求一次提升的权限而不需要再次请

Swift Enum to Cocoa Touch UIButton 选择器字符串

我正在为我的letterTapped()函数向UIButton添加一个目标,如下所示:button.addTarget(self,action:"letterTapped:",forControlEvents:.TouchUpInside)我喜欢.TouchUpInside如何与自动完成一起工作,它看起来比我应该用于action:参数的字符串更整洁、更安全。所以我搜索并找到了thistutorial它使用枚举来替换“魔术字符串”。我创建了一个这样的枚举:enumfunctionForAction:Selector{caseclearTapped="clearTapped:"casesu

swift - 使用 Swift 在 Cocoa 上绘图会产生错误

当尝试像在iOS应用程序中一样绘制时,我们遇到了一个问题。经过数小时的搜索但一无所获,我们决定在这里询问。为了画图,我们创建了一个类importCocoaclassDrawImageHolder:NSView{overridefuncdrawRect(dirtyRect:NSRect){super.drawRect(dirtyRect)print("drawRectisexecuted")//drawingcode}}然后我们像这样将类连接到NSView但是我们收到了-[NSApplicationrunModalForWindow:]maynotbeinvokedinsideoftra