我正在将Linux应用程序移植到Mac.我有源代码的不同文件,可以使用标准的Makefile进行编译和链接.
我将把代码移植到Mac并继续用C编写代码(抱歉,没有obj-c).有没有办法在XCode上创建项目,添加现有代码,以便我可以使用XCode和IDE,编译和调试代码并生成Mac Makefile?
谢谢您的帮助
我正在使用CFStringRef
一个.CFDictionaryRef
CFDictionaryGetValue
我一直在尝试将其转换CFStringRef
为char*
使用CFStringGetCString
或者CFStringGetCStringPtr
它们返回NULL或崩溃.
有没有办法做到这一点?怎么样?
谢谢.
编辑:示例代码:
SecStaticCodeRef staticCode;
CFDictionaryRef information;
SecCSFlags flags = kSecCSInternalInformation
| kSecCSSigningInformation
| kSecCSRequirementInformation
| kSecCSInternalInformation;
CFURLRef pathURL = NULL;
CFStringRef pathStr = NULL;
CFStringRef uniqueid;
char* str = NULL;
CFIndex length;
pathStr = CFStringCreateWithCString(kCFAllocatorDefault,
filename, kCFStringEncodingUTF8);
pathURL = CFURLCreateWithString(kCFAllocatorDefault, pathStr, NULL);
SecStaticCodeCreateWithPath(pathURL, kSecCSDefaultFlags, &staticCode);
SecCodeCopySigningInformation(staticCode, flags, &information);
uniqueid = (CFStringRef) CFDictionaryGetValue(information, kSecCodeInfoUnique);
// how do I convert it here to char *?
length = …
Run Code Online (Sandbox Code Playgroud) 我不知道这是否可行,但是在普通C中使用代码,是否可以从中调用Cocoa API?
有点像#include <cocoa.h>
,添加相应的库并去寻找它?
谢谢您的帮助
我有通过HTTP POST请求接收数据的应用程序.我正在尝试使用libcurl打开对此应用程序的请求,发送数据并从应用程序接收回复.这是我到目前为止的代码:
int main(void)
{
CURL *curl;
CURLcode res;
curl = curl_easy_init();
if(curl)
{
const int timeout = 30000;
char outputmessage[]="VGhpcyBpcyBqdXN0IGEgbWVzc2FnZSwgaXQncyBub3QgdGhlIHJlYWwgdGhpbmc=";
curl_easy_setopt(curl, CURLOPT_URL, "https://somehost.com/someapp");
curl_easy_setopt(curl, CURLOPT_SSL_VERIFYPEER, 0L);
curl_easy_setopt(curl, CURLOPT_SSL_VERIFYHOST, 0L);
curl_easy_setopt(curl, CURLOPT_USERAGENT, "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322; .NET CLR 2.0.5");
curl_easy_setopt(curl, CURLOPT_POSTFIELDS, outputmessage);
curl_easy_setopt(curl, CURLOPT_POSTFIELDSIZE, strlen(outputmessage));
curl_easy_setopt(curl, CURLOPT_POST, 1L);
curl_easy_setopt(curl, CURLOPT_TIMEOUT, timeout/1000);
res = curl_easy_perform(curl);
if(CURLE_OK != res)
{
printf("Error: %s\n", strerror(res));
return 1;
}
// now what?
// cleanup when done
curl_easy_cleanup(curl);
} …
Run Code Online (Sandbox Code Playgroud) 我有一个处理营销信息的简单应用程序.我做的是打电话
NSInteger result = [openPanel runModalForDirectory:nil file:nil types:fileTypes];
Run Code Online (Sandbox Code Playgroud)
当用户点击File->Open
菜单时.现在我被要求向应用程序添加拖放功能,以便用户可以将文件拖到它上,而不必转到菜单或按下命令+ o打开文件.
在你告诉我去阅读文档之前,我已经检查了Apple的简介以进行拖放和其他文档.我仍然无法弄清楚该怎么做.
我是一个老的Unix C程序员,需要复制这个,Apple的文档中的一些假设对我来说没有意义.
简而言之,我需要将哪些内容添加到我的应用中:
作为一个注释,我应该一次只处理一个文件.
谢谢您的帮助
我正在尝试以编程方式获取系统上的代理IP地址或URL集.
我在这里找到了可能适用于上一个问题的代码,但它在Objective-C中,我想要使用的是纯C.
我已经尝试将该obj-c代码翻译成C但没有成功.
任何人都知道如何在C中获得系统代理?
谢谢
在NSTableView
Xcode 4上添加到我的xib后,我将其设置为4列.第1列是一个简单的列,它将包含项目的名称.其他3个是复选框.我将a Check Box Cell
从对象库拖到tableview.
我填充表格并创建并显示复选框,但是如果我点击没有任何反应,我无法检查或取消选中它们.此外,我甚至不知道如何通过代码来做到这一点.
我该如何工作:能够选中或取消选中复选框并从代码中获取其状态.
我已经看到了这个问题,并没有真正回答我的问题.
以下是根据要求处理表的一些代码:
- (int)numberOfRowsInTableView:(NSTableView *)tableView
{
return (int)[myArray count];
}
- (id)tableView:(NSTableView *)tableView objectValueForTableColumn:(NSTableColumn *)tableColumn row:(int)row
{
if([[tableColumn identifier] isEqualToString:@"col1"])
{
return[NSNumber numberWithInt:NSOffState];
}
return [myArray objectAtIndex:row];
}
- (void)tableView:(NSTableView *)tableView setObjectValue:(id)anObject forTableColumn:(NSTableColumn *)tableColumn row:(NSInteger)row
{
NSLog(@"%d", [anObject boolValue]);
if([[tableColumn identifier] isEqualToString:@"col1"])
{
NSLog(@"click col1");
}
if([[tableColumn identifier] isEqualToString:@"col2"])
{
NSLog(@"click col2");
}
}
Run Code Online (Sandbox Code Playgroud)
我刚添加了更多代码.如何设置它来检查/取消选中?
该程序的一小部分背景:
该程序使用选项卡式界面同时处理多个文件.
我正在尝试更改OpenDialog的目录,所以每次打开文件时都会显示我当前正在处理的文件的目录,但即使我设置InitialDir
到文件的路径,它也会显示最后打开的文件目录,不是我设定的那个.
我尝试了以下方法:
if Length(CurrentFileName) > 0 then
begin
OpenFileDialog.InitialDir :='';
SetCurrentDirectory(PChar(CurrentFileName));
OpenFileDialog.InitialDir := ExtractFileDir(CurrentFileName);
end;
if OpenFileDialog.Execute then
...
Run Code Online (Sandbox Code Playgroud)
CurrentFileName
带有当前选项卡打开文件的文件名的完整路径在哪里.但没有运气.
有没有办法实现这个目标?
例如:
tab1
已c:\mydir\file.txt
打开
tab2
已d:\someotherdir\somefile.txt
打开
如果我移动tab1
并调用open函数,我OpenDialog
应该向我显示内容c:\mydir\
我正在使用Delphi 7.感谢任何帮助.
我有4列的tableview.第一个有一些文本,另外三个是复选框.
我需要在一个特定行中禁用3个复选框中的2个.我将行号保留在NSInteger变量上.
我实施了:
- (void)tableView:(NSTableView *)aTableView willDisplayCell:(id)aCell forTableColumn:(NSTableColumn *)aTableColumn row:(int)rowIndex
Run Code Online (Sandbox Code Playgroud)
我检查列标识符以了解我是否在右列,一旦我知道我检查行是否正确并将单元格设置为禁用.代码如下:
- (void)tableView:(NSTableView *)aTableView willDisplayCell:(id)aCell forTableColumn:(NSTableColumn *)aTableColumn row:(int)rowIndex
{
if(([[aTableColumn identifier] isEqualToString:@"column1"]) || ([[aTableColumn identifier] isEqualToString:@"column2"]))
{
if (rowIndex == myindex) // myindex holds the row index where I need to disable the cells
{
[aCell setEnabled:NO];
}
}
else
{
return;
}
}
Run Code Online (Sandbox Code Playgroud)
发生什么事很奇怪.我的特定行的Colum1和Colum2被禁用,直到我单击另一行,然后所有行都禁用这两列.
如何禁用这两个非常特殊的细胞(仅在myindex
行和仅column1
与 column2
)?
这是一个Mac OS X应用程序,而不是iOS应用程序.
谢谢
我有app签名.我根据Apple的代码签名指南创建identity
并用于codesign
签署我的应用程序.
现在,如何从我的应用程序中检查签名?
我需要在Cocoa应用程序(Objective-C)和用C编写的应用程序上验证这一点.