小编Joh*_*ght的帖子

如何在一次API调用中获取大型照片URL?

我想立即在我的Facebook应用程序的Feed视图中显示大型照片.是否可以使用一个API调用从流/源中获取大型照片src URL?照片ID会在流/ Feed中返回,当然可以在另外的FQL或图形API调用中提供此照片ID,以检索有关该照片的所有信息.但是,有没有办法使用多个查询或批量调用来使用一个API往返来获取更大的照片src url?

photos facebook-fql facebook-graph-api

39
推荐指数
2
解决办法
5万
查看次数

带有截断文本的多行NSAttributedString

我需要一个带有多行属性文本的UILabel subcass,支持链接,粗体样式等.我还需要带有省略号的尾部截断.支持内部UILabels属性文本开放源代码的无(TTTAttributedLabel,OHAttributedLabel,TTStyledTextLabel)似乎支持为多行文本尾截断.有一个简单的方法来获得这个吗?

core-text ios

23
推荐指数
4
解决办法
2万
查看次数

使用mDNS发现iOS设备名称

我注意到一些更好的网络发现应用程序,如Fing for iOS和iNet for Mac能够发现iOS设备和Mac设备的设备名称,即使它们没有宣传Bonjour服务,如iTunes Wi-Fi Sync.这是怎么做到的?我知道如何进行反向mDNS查询https://serverfault.com/questions/143184/how-do-i-get-the-machine-name-from-an-ip-via-multicast-dns.但是反向mDNS查找(至少由dig命令完成)dig -x the.ip @224.0.0.251 -p 5353)对于没有广播任何Bonjour服务的Mac,它将无效,除非在iOS设备上运行Wi-Fi Sync或其他一些Bonjour服务,否则它无效.我不知道如何获得这个名称,但这些应用程序可靠地得到它.我在iNet发现时使用了Wireshark,我只看到所有返回0个答案的ICMP和NetBios查询.

另请注意,我已经通过广播ping然后解析ARP表来获取设备的IP地址.我想通过获取设备名称并查找字符串"iPhone"或"iPad"来发现以这种方式发现的设备是iOS设备.

另请注意,iNet应用程序网站提供了有关如何撤消IP查找的以下内容.我认为这意味着他们为每个IP执行反向DNS查找和反向mDNS查找.

Reverse IP lookups (host­names) are per­formed as unicast and mul­ti­cast queries for every IP found.- http://www.bananaglue.de/inet/index_e.php

macos networking mdns ios ios7

18
推荐指数
1
解决办法
6437
查看次数

基于时间戳的同步的常见缺陷是什么?

我正在实现我的第一个同步代码.在我的情况下,我将为每个用户提供两种类型的iOS客户端,它们将使用lastSyncTimestamp一个64位整数将记录同步到服务器,该整数表示上一次同步的毫秒时间内的Unix时期.可以随时在服务器或客户端上创建记录,并通过HTTP将记录作为JSON进行交换.

我并不担心冲突,因为很少有更新,并且总是来自同一个用户.但是,我想知道是否有一些我需要注意的常见问题,基于时间戳的方法可能会出错,例如在夏令时期间同步,同步冲突或其他陷阱.

我知道git和其他一些版本控制系统避免与基于内容的协商同步方法的时间戳同步.我可以想象我的应用程序的这种方法,使用uuidhash对象,两个对手宣布他们拥有的对象,然后交换它们直到两个对手具有相同的集合.

如果有人知道基于内容的同步与基于时间戳的同步的任何优点或缺点,那么这也是有帮助的.

编辑 - 以下是我为时间戳和基于内容的同步提出的一些优点/缺点.请挑战/纠正.

注意 - 我将基于内容的同步定义为两组对象的简单协商,例如,如果你给两个孩子们交换卡片的每个部分,那两个相同的两组棒球卡,并告诉他们看起来像他们一样通过他们宣布并将他们找到的任何副本交给另一方,直到他们都有相同的集合.

  • 约翰尼 - "我拿到了这张卡片."
  • 戴维 - "我收到了一堆卡片.给我那张卡片."
  • 约翰尼 - "这是你的卡片.给我一堆卡片."
  • 戴维 - "这是你的一堆牌."
  • ....
  • 两者 - "我们完成了"

基于时间戳的同步的优点

  • 易于实施
  • 用于同步的单个属性.

基于时间戳的同步的缺点

  • 时间是观察者的相对概念,不同机器的时钟可能不同步.有几种方法可以解决这个问题.在单台机器上生成时间戳,该机器不能很好地扩展并表示单点故障.或者使用矢量时钟等逻辑时钟.对于构建自己的系统的普通开发人员来说,矢量时钟可能太复杂而无法实现.
  • 基于时间戳的同步适用于客户端以进行主同步,但对于对等同步或两个主服务器可能发生同步的情况也不起作用.
  • 单点故障,无论生成时间戳.
  • 时间与正在同步的内容并不真正相关.

基于内容的同步的优点

  • 不需要维护每个对等时间戳.2个对等体可以开始同步会话并基于内容开始同步.
  • 定义明确的端点 - 当双方都有相同的集合时.
  • 允许对等体系结构,任何对等体都可以充当客户端或服务器,只要它们可以托管HTTP服务器.
  • 同步与集合的内容一起使用,而不是抽象的概念时间.
  • 由于同步是围绕内容构建的,因此如果需要,可以使用同步进行内容验证.例如,可以对内容计算SHA-1哈希并将其用作uuid.它可以与同步期间发送的内容进行比较.
  • 更进一步,SHA-1哈希可以基于以前的哈希值来维护内容的一致历史记录.

基于内容的同步的缺点

  • 可能需要实现对象的额外属性.
  • 与基于时间戳的同步相比,双方的逻辑更多.
  • 稍微繁琐的协议(可以通过同步群集中的内容来调整).

git cocoa sync ios

13
推荐指数
2
解决办法
4731
查看次数

通过http和json同步2个sqlite表的最佳方法是什么?

我有一个相当简单的同步问题.我有一个包含大约10列的表,我希望在3个不同客户端上的sqlite文件之间保持同步:Iphone客户端,浏览器客户端和Ruby on Rails客户端.所以我需要一个适用于所有3个的简单sycing解决方案,即我可以在Javascript,Objective C和Ruby中轻松实现它,它可以通过HTTP与JSON一起使用.我查看了其他同步解决方案的各种组件,例如git中的一个,Google齿轮社区中的一些教程,以及一个名为acts_as_replica的rails插件.我天真的方法是简单地在数据库中创建最后同步的时间戳,然后在制作时创建所有删除的更改日志.(我不允许更新表中的条目).然后,我可以检索自上一个时间戳以来的所有新条目,

我应该考虑使用SHA1哈希值还是每个条目的UUID,或者是最后同步的时间戳是否足够?如何确保没有重复的条目?我可以遵循更简单的算法吗?

database sqlite json synchronization

12
推荐指数
1
解决办法
1万
查看次数

有没有充分的理由在浏览器外使用Websockets?

Websockets被设计用于在浏览器中进行快速双向通信.假设您可以控制服务器和本机客户端(比如iOS或Mac应用程序),是否有任何理由或情况可以通过websocket而不是使用HTTP库进行通信?

cocoa websocket ios

10
推荐指数
1
解决办法
1755
查看次数

如何绘制圆形NSImage

我想在一个内部创建一个圆角NSImageNSImageCell圆角NSTableView.我无法得到任何工作.这是我到目前为止在我的自定义中最好的NSCell:

- (void)drawInteriorWithFrame:(NSRect)frame inView:(NSView *)controlView { 
  if (thumbnailLink) {
    NSURL *url = [NSURL URLWithString:thumbnailLink];
    if (url) {
        NSRect imageFrame = [self _imageFrameForInteriorFrame:frame];
        NSImage *image = [[NSImage alloc] initWithContentsOfURL:url];
        [image setScalesWhenResized:YES];
        [image setSize:NSMakeSize(IMAGE_HEIGHT, IMAGE_WIDTH)];

        [NSGraphicsContext saveGraphicsState];
        imageFrame = NSInsetRect(imageFrame, 1, 1);
        NSBezierPath *clipPath = [NSBezierPath bezierPathWithRoundedRect:imageFrame cornerRadius:5.0];
        [clipPath setWindingRule:NSEvenOddWindingRule];
        [clipPath addClip];
        [NSGraphicsContext restoreGraphicsState];   
        [image drawInRect:imageFrame fromRect:NSMakeRect(0, 0, 0, 0) operation:NSCompositeSourceIn fraction:1.0];
        [image release];
    }
}
...
Run Code Online (Sandbox Code Playgroud)

关于如何做到的任何想法?

cocoa rounded-corners nsimage

7
推荐指数
3
解决办法
8261
查看次数

如何在控制器中不使用Rails动作参数

我正在Rails服务器中为Shipworks实现第三方API,而Shipworks客户端应用程序正在发布action具有Shipworks特定语义的参数.

但是,Rails路由逻辑会将此参数覆盖为控制器方法的名称.

是否有一个自定义路由我可以编写以获取该操作参数的值而不将其覆盖为我的控制器方法的名称?

ruby-on-rails

7
推荐指数
2
解决办法
2067
查看次数

是否可以在Erlang中构建工作队列?

我在Erlang中看过很多聊天示例但是列表如工作队列呢?如果我想构建一个工作队列系统,比如项目管理系统,是否可以在进程邮箱中重新排序消息,还是必须使用消息优先级?是否有Erlang内置的工作流系统示例?

erlang workflow

4
推荐指数
1
解决办法
1017
查看次数

在Cocoa AppKit中平滑地拉伸PNG

在类似这样的问题,一个是展示了如何使用UIKit中的

-(UIImage *)stretchableImageWithLeftCapWidth:(NSInteger)leftCapWidth topCapHeight:(NSInteger)topCapHeight
Run Code Online (Sandbox Code Playgroud)

轻松拉伸PNG,例如在像气泡这样的iChat中插入文本时.我想在使用CoreGraphics或一些NSImage相关API的常规AppKit/Cocoa /桌面应用程序上执行相同操作,但无法找到等效方法.有人知道如何在AppKit中执行此操作吗?

cocoa objective-c

4
推荐指数
1
解决办法
3086
查看次数

NSView的wantLayer表现

如果我创建一个空白的 Mac XCode 项目并NSView在主窗口中并排布局 500 个简单对象,它的加载速度会非常快。如果我wantsLayer=YES对每个子视图进行设置,性能会急剧下降几秒钟。为什么从概念上讲是这样的?看起来层会比常规的旧 NSView 更快而不是更慢。

macos cocoa nsview appkit

4
推荐指数
1
解决办法
1265
查看次数