小编jsd*_*jsd的帖子

停止凉亭在安装时询问统计数据

我正在尝试为使用bower的应用程序设置自动包构建.当它在安装后进入bower安装时,bower提示:

[?] May bower匿名报告使用情况统计数据,以便随着时间的推移改进工具?(Y/N)

这搞砸了自动化脚本.我可以编写一个期望脚本来处理这个问题,但如果我不需要,我宁愿不这样做.有没有办法让它闭嘴?

bower

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

使用valueForKeyPath获取数组元素

有没有办法访问NSArray元素valueForKeyPath?例如,Google的反向地理编码器服务会返回一个非常复杂的数据结构.如果我想要进入这个城市,那么现在我必须把它分成两个电话,像这样:

NSDictionary *address = [NSString stringWithString:[[[dictionary objectForKey:@"Placemark"] objectAtIndex:0] objectForKey:@"address"]];
NSLog(@"%@", [address valueForKeyPath:@"AddressDetails.Country.AdministrativeArea.SubAdministrativeArea.Locality.LocalityName"]);
Run Code Online (Sandbox Code Playgroud)

只是想知道是否有办法将objectAtIndex:调用塞入valueForKeyPath字符串.我尝试了像@"Placemark [0] .address"这样的javascript-esque配方,但没有骰子.

cocoa objective-c key-value-coding

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

调试VisualVM远程连接

我在亚马逊云的Linux服务器上运行Tomcat 6.我正在尝试使用我的办公室Mac上的VisualVM连接到它.我允许打开桌面和服务器之间的所有TCP端口,但我无法让VisualVM做任何事情.

在linux框中,我已经启动了Tomcat:

-Dcom.sun.management.jmxremote
-Dcom.sun.management.jmxremote.port=9191
-Dcom.sun.management.jmxremote.ssl=false
-Dcom.sun.management.jmxremote.authenticate=false
Run Code Online (Sandbox Code Playgroud)

在我的Mac上,我启动VisualVM并选择File - > New JMX Connection ...

我在框中输入amazonhostname.com:9191.它说"添加amazonhostname.com:9191 ......"然后在那里停留几分钟才能超时.

从我的Mac,我可以"telnet amazonhostname.com 9191"就好了,我尝试了一些其他随机端口,他们都工作.我非常确信它不是防火墙问题,除非我需要打开UDP或ICMP或类似的东西.(真??)

服务器上的catalina.log或我的Mac上的系统控制台与jmx无关.服务器上的netstat显示9191,其他一些端口在所有接口上打开.

远程服务器上没有jstatd.这是JMX的先决条件吗?(我对Java完全不熟悉,我甚至不确定那些东西是什么意思,但我在某个博客文章中看到过.我现在正在抓住稻草.)

java tomcat jmx visualvm

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

NSViewController上的validateMenuItem

是否可以使validateMenuItem与NSViewControllers一起使用?文档说NSViewController是NSResponder的子类,所以我认为它会参与响应者链,但我从来没有能够让它工作.我可以使用NSView,没问题.

我的特定用例是MainMenu.xib中的一个菜单项,它连接到First Responder.我的视图控制器子类中的选择器显示在MainMenu的第一响应者弹出的选择器列表中,所以我认为它可以工作,但事实并非如此.我的子类的validateMenuItem方法永远不会被调用.(调用app委托中的那个,但不是连接到First Responder的项目.)

macos cocoa nsviewcontroller nsmenuitem nsresponder

8
推荐指数
0
解决办法
536
查看次数

禁用rpmbuild自动要求查找

rpmbuild的默认行为似乎是扫描buildroot中的每个文件#!行并将这些解释器添加为硬性要求.是否可以禁用此功能?我遇到过这样一种情况:人们用#!/ path/to/local/install/of/something提交脚本,而且这个要求正在嵌入rpm中.

我无法找到抑制此行为的命令行或spec文件选项.希望我只是看起来不够努力.

packaging centos rpm rpmbuild

6
推荐指数
1
解决办法
8578
查看次数

SecItemCopyMatching 无法读取 iCloud 钥匙串

我从 Stack Overflow 上抓取了代码来访问一些网络浏览器密码。只要密码在登录钥匙串中,它就可以很好地工作。在某些时候,我感兴趣的特定帐户已移至 iCloud 钥匙串,并且不再存在于登录钥匙串中。SecItemCopyMatching 找不到它。它返回 OSStatus -23500,即“未找到项目”。如何访问这些条目?

CFArrayRef result = NULL;
NSDictionary *params = @{ (__bridge id)kSecClass            : (__bridge id)kSecClassInternetPassword,
                        (__bridge id)kSecMatchLimit       : (__bridge id)kSecMatchLimitAll,
                        (__bridge id)kSecReturnAttributes : (__bridge id)kCFBooleanTrue,
                        (__bridge id)kSecAttrProtocol     : (__bridge id)kSecAttrProtocolHTTPS,
                        (__bridge id)kSecAttrServer       : @"accounts.mydomain.com"
                        };
OSStatus status = SecItemCopyMatching((__bridge CFDictionaryRef)(params), (CFTypeRef *) &result);

if (status == noErr) {
   // item found!
}
Run Code Online (Sandbox Code Playgroud)

macos cocoa keychain icloud

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

基于视图的NSTableView + NSButton

我有一个基于视图的NSTableView,使用Cocoa Bindings来更改单元格中某些标签和图像的值.这一切都很棒.但是,我想在单元格中添加一个按钮.我有按钮工作,但它的动作方法只有按钮作为发送者,这意味着我不知道按钮所在的单元格的内容.不知何故,我需要在按钮上存储一些额外的数据 - 在至少是按钮所在的行索引.我将NSButton子类化并在单元格中使用了我的子类,但是Interface Builder不知道额外的属性,因此我无法绑定它.如果我想在代码中绑定它,我不知道将传递给它的对象或keypath的名称.

我怎样才能让它发挥作用?

macos cocoa nstableview cocoa-bindings

3
推荐指数
1
解决办法
1628
查看次数

是否有更有效的方法来比较C中的字节数组

我试图通过查看前四个字节来检测给定文件是否是ZIP文件.这是在一个iOS应用程序,所以文件句柄的东西是由Cocoa框架处理,但实际的字节比较的东西是直接C,我真的不知道.

    unsigned char aBuffer[4];
    NSFileHandle *fileHandle = [NSFileHandle fileHandleForReadingAtPath:filePath];
    NSData *data = [fileHandle readDataOfLength:4];
    [data getBytes:aBuffer];
    if (aBuffer[0] == 0x50 && aBuffer[1] == 0x4b && aBuffer[2] == 0x03 && aBuffer[3] == 0x04) {
        archiveType = ARCHIVE_TYPE_ZIP;
    }
Run Code Online (Sandbox Code Playgroud)

它起作用但是笨拙地打击我.有没有更好的方法来比较这4个字节?(是的,我知道它需要更多错误检查.)

c ios

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

忽略C函数中的参数

我正在将一个C库集成到iOS的Objective-C应用程序中.我不是很精通C ...我知道这很危险.

C函数声明是这样的:

extern int ZEXPORT unzGetCurrentFileInfo OF((unzFile file,
                         unz_file_info *pfile_info,
                         char *szFileName,
                         uLong fileNameBufferSize,
                         void *extraField,
                         uLong extraFieldBufferSize,
                         char *szComment,
                         uLong commentBufferSize));
Run Code Online (Sandbox Code Playgroud)

我真的只对此感兴趣szFileName.我知道我可以忽略void*char*通过NULL.我可以通过一些 - NULL相当于uLongparams吗?我收到一个关于转换为没有强制转换的指针的编译器警告.

这是我调用此函数的循环,以防有人想对此进行评论.我做了malloc/ free正确吗?我不习惯低级C的东西.我知道有人抱怨Objective-C引用计数,但相比之下它非常豪华:)

unz_file_info pfile_info;
char *szFileName = malloc(1024);
uLong fileNameBufferSize;
uLong commentBufferSize;
uLong extraFieldBufferSize;

do {
    int ret = unzGetCurrentFileInfo(zipFile, &pfile_info, szFileName, fileNameBufferSize, NULL, extraFieldBufferSize, NULL, commentBufferSize);
    NSLog(@"get info ret %i filename size %lu, filename %s", ret, pfile_info.size_filename, szFileName);
    // …
Run Code Online (Sandbox Code Playgroud)

c

0
推荐指数
1
解决办法
916
查看次数