小编Oll*_*lly的帖子

使用常量NSString作为NSUserDefaults的键

我正在使用NSUSerDefaults存储用户首选项.我记得在某处将键设置为常量是一个好主意 - 我同意.以下代码是我目前拥有的代码:

[[NSUserDefaults standardUserDefaults]
        setObject:[NSNumber numberWithInt:polygon.numberOfSides] 
           forKey:@"polygonNumberOfSides"];
Run Code Online (Sandbox Code Playgroud)

我尝试将其更改为:

@implementation Controller

NSString const *kPolygonNumberOfSides = @"polygonNumberOfSides";

-(void)savePolygonInfo {
    [[NSUserDefaults standardUserDefaults]
            setObject:[NSNumber numberWithInt:polygon.numberOfSides] 
               forKey:kPolygonNumberOfSides];
}
Run Code Online (Sandbox Code Playgroud)

虽然这确实有效,但它会产生" warning: passing argument 1 of 'objectForKey:' discards qualifiers from pointer target type".我很想让我的代码免受编译器警告的影响.我该如何修复此警告?

cocoa objective-c default-value

85
推荐指数
4
解决办法
5万
查看次数

从Ruby中的Unix Socket读取/写入

我正在尝试从Ruby中的UNIX套接字进行连接,读取和写入.它是haproxy使用的stats套接字.

我的代码如下:

require 'socket'
socket = UNIXSocket.new("/tmp/haproxy.stats.socket")

# First attempt: works

socket.puts("show stat")

while(line = socket.gets) do
  puts line
end

# Second attemp: fails

socket.puts("show stat")

while(line = socket.gets) do
  puts line
end
Run Code Online (Sandbox Code Playgroud)

它第一次成功,但在第二次尝试失败.我不知道为什么.

# pxname,svname,qcur,qmax,scur,smax,slim,stot,bin,bout,dreq,dresp,ereq,econ,eresp,wretr,wredis,status,weight,act,bck,chkfail,chkdown,lastchg,downtime,qlimit,pid,iid,sid,throttle,lbtot,tracked,type,rate,rate_lim,rate_max,check_status,check_code,check_duration,hrsp_1xx,hrsp_2xx,hrsp_3xx,hrsp_4xx,hrsp_5xx,hrsp_other,hanafail,req_rate,req_rate_max,req_tot,cli_abrt,srv_abrt,
stats,FRONTEND,,,0,0,2000,0,0,0,0,0,0,,,,,OPEN,,,,,,,,,1,1,0,,,,0,0,0,0,,,,0,0,0,0,0,0,,0,0,0,,,
stats,BACKEND,0,0,0,0,2000,0,0,0,0,0,,0,0,0,0,UP,0,0,0,,0,22,0,,1,1,0,,0,,1,0,,0,,,,0,0,0,0,0,0,,,,,0,0,
legacy_socket,FRONTEND,,,0,0,1000,0,0,0,0,0,0,,,,,OPEN,,,,,,,,,1,2,0,,,,0,0,0,0,,,,0,0,0,0,0,0,,0,0,0,,,
all,FRONTEND,,,0,0,10000,0,0,0,0,0,0,,,,,OPEN,,,,,,,,,1,3,0,,,,0,0,0,0,,,,0,0,0,0,0,0,,0,0,0,,,
socket_backend,socket,0,0,0,0,200,0,0,0,,0,,0,0,0,0,DOWN,1,1,0,0,1,22,22,,1,4,1,,0,,2,0,,0,L4CON,,0,0,0,0,0,0,0,0,,,,0,0,
socket_backend,socket,0,0,0,0,200,0,0,0,,0,,0,0,0,0,DOWN,1,1,0,0,1,22,22,,1,4,2,,0,,2,0,,0,L4CON,,0,0,0,0,0,0,0,0,,,,0,0,
socket_backend,socket,0,0,0,0,200,0,0,0,,0,,0,0,0,0,DOWN,1,1,0,0,1,22,22,,1,4,3,,0,,2,0,,0,L4CON,,0,0,0,0,0,0,0,0,,,,0,0,
socket_backend,socket,0,0,0,0,200,0,0,0,,0,,0,0,0,0,DOWN,1,1,0,0,1,22,22,,1,4,4,,0,,2,0,,0,L4CON,,0,0,0,0,0,0,0,0,,,,0,0,
socket_backend,socket,0,0,0,0,200,0,0,0,,0,,0,0,0,0,DOWN,1,1,0,0,1,22,22,,1,4,5,,0,,2,0,,0,L4CON,,0,0,0,0,0,0,0,0,,,,0,0,
socket_backend,socket,0,0,0,0,200,0,0,0,,0,,0,0,0,0,DOWN,1,1,0,0,1,22,22,,1,4,6,,0,,2,0,,0,L4CON,,0,0,0,0,0,0,0,0,,,,0,0,
socket_backend,socket,0,0,0,0,200,0,0,0,,0,,0,0,0,0,DOWN,1,1,0,0,1,22,22,,1,4,7,,0,,2,0,,0,L4CON,,0,0,0,0,0,0,0,0,,,,0,0,
socket_backend,socket,0,0,0,0,200,0,0,0,,0,,0,0,0,0,DOWN,1,1,0,0,1,21,21,,1,4,8,,0,,2,0,,0,L4CON,,0,0,0,0,0,0,0,0,,,,0,0,
socket_backend,socket,0,0,0,0,200,0,0,0,,0,,0,0,0,0,DOWN,1,1,0,0,1,21,21,,1,4,9,,0,,2,0,,0,L4CON,,0,0,0,0,0,0,0,0,,,,0,0,
socket_backend,socket,0,0,0,0,200,0,0,0,,0,,0,0,0,0,DOWN,1,1,0,0,1,21,21,,1,4,10,,0,,2,0,,0,L4CON,,0,0,0,0,0,0,0,0,,,,0,0,
socket_backend,BACKEND,0,0,0,0,0,0,0,0,0,0,,0,0,0,0,DOWN,0,0,0,,1,21,21,,1,4,0,,0,,1,0,,0,,,,0,0,0,0,0,0,,,,,0,0,
api_backend,api,0,0,0,0,200,0,0,0,,0,,0,0,0,0,UP,1,1,0,0,0,22,0,,1,5,1,,0,,2,0,,0,L4OK,,0,0,0,0,0,0,0,0,,,,0,0,
api_backend,api,0,0,0,0,1,0,0,0,,0,,0,0,0,0,UP,1,1,0,0,0,22,0,,1,5,2,,0,,2,0,,0,L4OK,,0,0,0,0,0,0,0,0,,,,0,0,
api_backend,api,0,0,0,0,1,0,0,0,,0,,0,0,0,0,DOWN,1,1,0,0,1,21,21,,1,5,3,,0,,2,0,,0,L4CON,,0,0,0,0,0,0,0,0,,,,0,0,
api_backend,BACKEND,0,0,0,0,0,0,0,0,0,0,,0,0,0,0,UP,2,2,0,,0,22,0,,1,5,0,,0,,1,0,,0,,,,0,0,0,0,0,0,,,,,0,0,
www_backend,ruby-www,0,0,0,0,10000,0,0,0,,0,,0,0,0,0,UP,1,1,0,0,0,22,0,,1,6,1,,0,,2,0,,0,L4OK,,0,0,0,0,0,0,0,0,,,,0,0,
www_backend,BACKEND,0,0,0,0,0,0,0,0,0,0,,0,0,0,0,UP,1,1,0,,0,22,0,,1,6,0,,0,,1,0,,0,,,,0,0,0,0,0,0,,,,,0,0,

/Users/Olly/Desktop/haproxy_stats.rb:14:in `write': Broken pipe (Errno::EPIPE)
    from /Users/Olly/Desktop/haproxy_stats.rb:14:in `puts'
    from /Users/Olly/Desktop/haproxy_stats.rb:14
Run Code Online (Sandbox Code Playgroud)

问题是什么?有没有很好的参考使用UNIX套接字和Ruby?

ruby unix-socket

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

Go中字符串的安全比较

是一种在Go中进行恒定时间字符串比较的内置方法吗?

Devise.secure_compare当我在Ruby中需要这个功能时,我已经使用过这个方法.

go

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

如何实现具有最小和最大尺寸的3窗格NSSplitView?

我想实现一个3窗格的垂直NSSplitView(非常类似于Mail.app).我不确定从哪里开始.我很确定我需要实现一个NSSplitViewDelegate,但我不确定哪些方法和/或它们的实现.

我想要的布局如下:

+----------+------------------+------------------------------------+
|          |                  |                                    |
|          |                  |                                    |
|          |                  |                                    |
|          |                  |                                    |
|  Pane 1  |      Pane 2      |               Pane 3               |
|          |                  |                                    |
|          |                  |                                    |
|          |                  |                                    |
|          |                  |                                    |
|          |                  |                                    |
+----------+------------------+------------------------------------+
Run Code Online (Sandbox Code Playgroud)

我想为每个窗格实现以下约束:

  • 窗格1:最低140pt.最大值:400pt.
  • 窗格2:最低250pt.
  • 窗格3:最低400pt.

任何指针都将非常感激.

cocoa nssplitview

7
推荐指数
4
解决办法
4369
查看次数

在NSSearchField中显示进度指示器

我正在使用NSSearchField通过Internet运行查询并在表格视图中显示结果.在查询运行时,我想在NSSearchField中显示进度指示器?我想我以前在另一个应用程序中看到过这个.

是否有可用于实现此目的的开源组件?

我该怎么做呢?什么是最好的方法?有什么陷阱?

macos cocoa objective-c nssearchfield

5
推荐指数
1
解决办法
613
查看次数

NSDateFormatter使用和不使用毫秒来解析ISO8601

是否可以同时NSDateFormatter解析带有和不带毫秒的ISO8601日期.

我有两个由API返回的日期格式,有时它们包含毫秒,有时不包括.

例如,我可能有2013-07-23T13:45:02Z2013-07-23T13:45:02.677Z.对于前者设置该dateFormat属性@"yyyyMMdd'T'HHmmss'Z'"工作正常.

是否有一种格式可用于解析后者,如果存在,可选择解析毫秒数?

cocoa datetime objective-c

5
推荐指数
1
解决办法
2618
查看次数

从文件URL确定AFP共享

我编写了一个应用程序来将某些文件复制到某个位置.它允许用户选择始终位于AFP共享上的目的地.这是通过NSOpenPanel完成的.返回的URL是:file://localhost/Volumes/Oliver%20Legg's%20Backup/.

我想要完成的是当应用程序启动时,如果未安装AFP共享,我希望它自动安装它.做这个的最好方式是什么?

Get Info命令将服务器列为:afp://Power Mac G5._afpovertcp.local/Oliver%20Legg's%20Backup.如何以编程方式从文件URL获取此URL?我想如果我能获得该URL,我可以使用FSMountServerVolumeAsync挂载它.这是最好的(最简单,最抽象的)API吗?

macos cocoa afp

2
推荐指数
1
解决办法
1842
查看次数