Tag: macos

Objective-C中的多个NSURLConnection委托

我有两个NSURLConnections。 第二个取决于第一个的内容,因此处理从连接接收的数据对于两个连接是不同的。 我只是拿起Objective-C,我想知道实现代表的正确方法是什么。 现在我正在使用: NSURL *url=[NSURL URLWithString:feedURL]; NSURLRequest *urlR=[[[NSURLRequest alloc] initWithURL:url] autorelease]; NSURLConnection *conn=[[NSURLConnection alloc] initWithRequest:urlR delegate:self]; 我不想用自己作为委托,我如何定义与不同委托的两个连接? NSURLConnection *c1 = [[NSURLConnection alloc] initWithRequest:url delegate:handle1]; NSURLConnection *c2 = [[NSURLConnection alloc] initWithRequest:url delegate:handle2]; 我将如何创buildhandle1和handle2作为实现? 还是接口? 我真的不知道你会怎么做。 任何帮助都是极好的。 谢谢,Brian Gianforcaro

NSString boundingRectWithSize返回不必要的高度

当使用[NSString boundingRectWithSize:options:attributes] ,返回的矩形的大小比我预期的某些string更高。 返回的高度似乎表示具有给定属性的string的最大可能高度,而不是string本身的高度。 假设具有相同的属性和选项,string“ cars ”返回的高度与string“ ÉTAS-UNIS ”返回的高度相同(请注意E上的重音)。 我会期望boundingRectWithSize只考虑给定的string中的字符,在我看来,它会返回一个较短的高度string“ cars ”。 在附加的屏幕截图中,我已经填充了从boundingRectWithSize返回的矩形,并用红色标出了我将假定边界矩形应该是什么的。 矩形的宽度与我所期望的相当,但是高度比我预期的要高得多。 这是为什么? 示例代码: NSRect boundingRect = NSZeroRect; NSSize constraintSize = NSMakeSize(CGFLOAT_MAX, 0); NSString *lowercaseString = @"cars"; NSString *uppercaseString = @"ÉTAS-UNIS"; NSString *capitalizedString = @"Japan"; NSFont *drawingFont = [NSFont fontWithName:@"Georgia" size:24.0]; NSDictionary *attributes = @{NSFontAttributeName : drawingFont, NSForegroundColorAttributeName : [NSColor blackColor]}; boundingRect = […]

以防止“PerformSelect可能导致泄漏,因为其select器是未知的”警告

可能重复: performSelector可能会导致泄漏,因为它的select器是未知的 我做了一个NSDictionary将我的input(NSString)转换为select器。 “select器映射”如下所示: [self setCmdSelectorMap:[NSDictionary dictionaryWithObjectsAndKeys: [NSValue valueWithPointer:@selector(doOpenBrowserByString:)], @"openBrowser", [NSValue valueWithPointer:@selector(syncData:)], @"sync", [NSValue valueWithPointer:@selector(getCachedString:)], @"getCachedString", nil]]; 当我尝试获取这些select器中的一个并按照如下执行时,会引起警告: sel = [[_cmdMap objectForKey:command] pointerValue]; NSLog(@"selector determined : %@", NSStringFromSelector(sel)); [self performSelector:sel withObject:arguments]; 警告说:执行select器可能会导致泄漏,因为它的select器是未知的。 有什么办法可以防止这个警告的发生? 还是有什么“安全”的方式来执行这样的行动? 多谢你们 :)

核心数据云同步 – 需要逻辑帮助

我正在为我正在开发的核心数据应用程序集思广益的云同步解决scheme。 我打算一旦完成这个工作,就开放源代码,任何人都可以使用他们的核心数据应用程序,所以从社区input这个系统应该如何工作,非常感谢:-)这是我在想什么: 服务器端 存储提供商 与所有的云同步系统一样,存储是一个难题。 有很多方法来处理这个问题。 我可以build立自己的服务器用于存储,或者使用像Amazon S3这样的服务,但是因为我是以$ 0的资本开始的,所以在这个时候,付费存储解决scheme不是一个可行的select。 经过一番思考,我决定与Dropbox (一个已经很好build立的云同步应用程序和存储提供商)解决。 使用Dropbox的优点是: 它是免费的(对于有限的空间) 除了作为存储服务之外,它还处理云同步 他们最近发布了一个Objective-C SDK,这使得在Mac和iPhone应用程序中使用它更容易 如果我决定在将来转换到不同的存储提供商,我打算在这个云同步框架中添加“服务”,基本上允许任何人创build一个服务类来与他们select的存储提供者连接,这可以简单地插入框架。 存储结构 这是一个非常困难的部分,所以我需要尽可能多的input,我可以在这里。 我一直在想这样的结构: CloudSyncFramework ======> [app name] ==========> devices =============> (device id) ================> deviceinfo ================> changeset ==========> entities =============> (entity name) ================> (object id) 这个结构的快速解释: 主“CloudSyncFramework”(名称未定)文件夹将为每个使用该框架的应用程序包含单独的文件夹 每个应用程序文件夹都包含设备文件夹和实体文件夹 设备文件夹将包含为该帐户注册的每个设备的文件夹。 设备文件夹将根据设备ID进行命名,使用[[UIDevice currentDevice] uniqueIdentifier] (在iOS上)或序列号(在Mac OS上)等获得。 每个设备文件夹包含两个文件: deviceinfo和changeset 。 deviceinfo包含有关设备的信息(例如操作系统版本,上次同步date,型号等),并且更改集文件包含有关自设备上次同步后发生更改的对象的信息。 这两个文件将只是简单的NSDictionaries使用NSKeyedArchiver归档到文件。 […]

我需要Mac开发Azure Xamarin.iOS应用程序吗?

普通的Xamarin(不是Azure版本)显然需要运行Mac OS X的Mac电脑来开发iOS应用程序。 但是在Microsoft Azure Xamarin.iOS文档中,没有这样的先决条件。 这是否意味着我可以在没有Mac的Windows计算机上使用Azure Xamarin.iOS开发iOS应用程序?

如何在Mac豹更新Xcode 3.2.5到4.4.1版本?

我运行的Mac OS X 10.6.8(最近更新)。 其中Xcode 3.2.5已经安装。 而我喜欢安装4.4.1(最新版本)。 但我得到的dmg图标,不允许我安装最新版本的xcode十字符号。 请在此引导我。 谢谢。

Swift:在CFArray中提取/向下转换基于CFType的CoreTexttypes

我想将CoreAnimationText示例的元素移植到Swift中。 但是我不知道如何从数组中提取或向下转换CTRun的元素,以便将它们传递给期望并在Swift ified CTRuntypes上执行的函数。 我要么得到运行时错误或从下面的游乐场片段链接错误 import CoreText import QuartzCore let text = NSAttributedString(string: "hello") var line: CTLine = CTLineCreateWithAttributedString(text) var ctRuns:CFArray = CTLineGetGlyphRuns(line) let nsRuns:Array<AnyObject> = ctRuns as NSArray nsRuns.count // == 1 // Playground execution failed: error: error: Couldn't lookup symbols:_OBJC_CLASS_$_CTRun let nsRun = nsRuns[0] as CTRun nsRun.self println(nsRun.self) let anyRuns = nsRuns as […]

使用GLSL数组的SceneKit着色器修改器

我正在尝试在SceneKit中将一些点传入一个着色器修改器,但我无法制定出正确的语法。 在我的着色器扩展代码中,我有: uniform vec2 points[100]; 如果我打电话… material.setValue(NSValue(point: CGPoint(x: 100.5, y: 50.5)), forKey: "points") …然后它设置points[0]的值,这使我认为这也许是不可能的。 我已经尝试了许多其他的组合键和值,但似乎没有任何工作。 有一个更好的方法吗? 我的最终目标是修改arrays中一组点的表面漫reflection颜色,否则使用默认渲染。 有没有更好的方法来做这个在着色器比循环vec2的数组? 谢谢你的帮助。

从textField中select粗体和斜体文本

我如何只select用户在textField / textView中input的粗体和斜体文本? 我们可以使选定的文本大胆 , 斜体 ,下划线和这三者的任意组合,但反之亦然。 * 这不是特定于Mac OSX或iOS,任何一个解决scheme都适合我。 编辑: 我尝试阅读属性string中的文本: NSAttributedString *string=self.textView.string; 但是,由于textView和textField返回NSString所以所有的格式不见了。

在Objective C编程中,reachabilityWithAddress不起作用

我想检查一个服务器是否带有ip,例如74.125.71.104(Google的ip) //分配一个可达性对象 `struct sockaddr_in address; address.sin_len = sizeof(address); address.sin_family = AF_INET; address.sin_port = htons(80); address.sin_addr.s_addr = inet_addr("74.125.71.104");` Reachability *reach = [Reachability reachabilityWithAddress:&address]; 但那些不工作。 当我改变到reachabilityWithHostname ,它的工作。