我正在使用idhttp(Indy)做一些网站检查.我想要它做的就是在我的请求发送后检查来自服务器的响应代码,我不想实际上必须从服务器接收HTML输出,因为我只监视200 OK代码,任何其他代码意味着存在某种形式的问题.
我查了idhttp帮助文档,我能看到的唯一方法就是将代码分配给a MemoryStream,然后立即清除它,但这不是很有效并且使用不需要的内存.有没有办法只是调用一个站点并获得响应,但忽略发回的HTML更高效,不浪费内存?
目前代码看起来像这样.然而,这只是我尚未测试的示例代码,我只是用它来解释我正在尝试做什么.
Procedure Button1Click(Sender: TObject);
var
http : TIdHttp;
s : TStream;
url : string;
code : integer;
begin
s := TStream.Create();
http := Tidhttp.create();
url := 'http://www.WEBSITE.com';
try
http.get(url,s);
code := http.ResponseCode;
ShowMessage(IntToStr(code));
finally
s.Free();
http.Free();
end;
Run Code Online (Sandbox Code Playgroud) 我在Xcode故事板中为Master-Detail splitview应用程序设置了一个良好的布局,但是当我在模拟器或实际设备上运行它时,它显得有些混乱,我不明白为什么.
Xcode中的图像看起来像这样;

模拟器和设备中的布局如下所示

我刚刚按照本教程将Google Analytics SDK v4添加到Android应用中.现在的问题是,当我运行应用程序时,它只会在我设置跟踪的任何视图上显示黑屏.例如,下面是启动屏幕后第一个视图中的onCreate,onStart和onStop方法.启动画面加载很好,然后我在视图上得到一个黑屏.如果您注释掉分析代码,那么一切正常
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.landing_screen);
//Get a Tracker (should auto-report)
//Define font for use
Typeface typeface = Typeface.createFromAsset(getAssets(), "fonts/cabinregular.otf");
//Set font to all elements
((TextView) findViewById(R.id.textFlat)).setTypeface(typeface);
((TextView) findViewById(R.id.textCool)).setTypeface(typeface);
((TextView) findViewById(R.id.textWarm)).setTypeface(typeface);
((TextView) findViewById(R.id.textPastels)).setTypeface(typeface);
((TextView) findViewById(R.id.textDecades)).setTypeface(typeface);
((TextView) findViewById(R.id.textNeutrals)).setTypeface(typeface);
((TextView) findViewById(R.id.textMidTones)).setTypeface(typeface);
//((TextView) findViewById(R.id.appHeaderText)).setTypeface(typeface);
//Create all the listeners to catch button presses
ImageButton buttonFlat = (ImageButton) findViewById(R.id.buttonFlat);
buttonFlat.setOnClickListener(this);
ImageButton buttonCool = (ImageButton) findViewById(R.id.buttonCool);
buttonCool.setOnClickListener(this);
ImageButton buttonWarm = (ImageButton) findViewById(R.id.buttonWarm);
buttonWarm.setOnClickListener(this);
ImageButton buttonPastels = (ImageButton) findViewById(R.id.buttonPastels); …Run Code Online (Sandbox Code Playgroud) 我有一个文件,在各行上包含几千个单词.我需要将所有这些单词加载到数组中的单独元素中,因此第一个单词将是Array [0],第二个单词将是Array [1]等.
我在其他地方找到了一些示例代码,但Xcode 4.3说它使用了折旧的调用.
NSString *tmp;
NSArray *lines;
lines = [[NSString stringWithContentsOfFile:@"testFileReadLines.txt"]
componentsSeparatedByString:@"\n"];
NSEnumerator *nse = [lines objectEnumerator];
while(tmp = [nse nextObject]) {
NSLog(@"%@", tmp);
}
Run Code Online (Sandbox Code Playgroud) 我需要手动编程触发我的tableView上的单元格选择.基本上运行预制功能
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
Run Code Online (Sandbox Code Playgroud)
我这样做是为了从tableView中删除一个项目时它会自动加载下一个项目.但是,当我尝试手动调用此函数时,似乎无法找到它.我试过了
self.tableView: didSelectRowAtIndexPath
Run Code Online (Sandbox Code Playgroud)
和
[tableView didSelectRowAtIndexPath]
Run Code Online (Sandbox Code Playgroud)
但都没有得到认可.
我需要从同一个按钮创建两个Segue,然后我想以编程方式选择根据设备方向使用哪一个.我遇到的问题是你似乎只能创建一个从按钮到另一个视图的segue,所以当我添加第二个时,它只会改变第一个.
你如何添加一个没有链接到按钮等的segue,所以我可以以编程方式进行,或者你应该怎么做.我希望有两个视图可以根据方向动态选择,而不是在旋转时通过代码移动对象,因为有很多对象和自定义的东西可以让它更简单,只有两个视图.
我想在应用程序的"信息和信用"屏幕上将版本和内部版本号打印到我的应用程序中.我在摘要页面的"版本号"中输入了1.2,在"摘要"页面的"内部编号"中输入了"D03".
然后我找到了这个代码片段来打印它们,
NSString * appVersionString = [[NSBundle mainBundle]
objectForInfoDictionaryKey:@"CFBundleVersion"];
Run Code Online (Sandbox Code Playgroud)
但是,这似乎只打印"Build Number"中的值而不是版本号中的值.如何访问Build和Version编号?
我正在写一个小型磨损应用程序,需要快速访问大约10-15分钟一次.问题是当手表睡眠时(屏幕完全变黑)你必须回到启动应用程序屏幕才能恢复它.
数据被保留,因此这比其他任何东西都更令人讨厌.反正有没有让手表只是调暗屏幕,但在用户关闭应用程序之前不要将其关闭?
我现在有一个几乎完成的应用程序,我想要实现的下一个功能是线程.我选择使用BeginThread(),虽然我知道delphi中的TThread.我遇到的问题是BeginThread()调用的结构.通常,程序中调用我想要线程化的函数的行是
CompareFiles(form1.Edit3.Text,Form1.Edit4.Text,Form1.StringGrid2,op);
Run Code Online (Sandbox Code Playgroud)
op是一个整数.
我已经将它切换出来以便从中创建一个线程
BeginThread(nil,0,CompareFiles,Addr('form1.Edit3.Text,Form1.Edit4.Text,Form1.StringGrid2,op'),0,x);
Run Code Online (Sandbox Code Playgroud)
从我可以找到的关于如何实际使用BeginThread()的少量信息来看,这应该是一个很好的调用,但是在编译时我得到的是关于我的BeginThread()语句参数的结构的编译器错误.
编辑信息.
调用CompareFiles的当前过程是
procedure TForm1.Panel29Click(Sender: TObject);
var
op,x : integer;
begin
if (Form1.Edit3.Text <> '') AND (Form1.Edit4.Text <> '') then
begin
op := 3;
if RadioButton7.Checked = True then op := 0;
if RadioButton3.Checked = True then op := 1;
if RadioButton4.Checked = True then op := 2;
if RadioButton5.Checked = True then op := 3;
if RadioButton6.Checked = True then op := 4;
CompareFiles(form1.Edit3.Text,Form1.Edit4.Text,Form1.StringGrid2,op);
end;
end;
Run Code Online (Sandbox Code Playgroud)
如果我按照几个人的建议使用TThread,并且如下面Rob所示,我很困惑a)我将如何将op,Edit3/4.Text和StringGrid2传递给CompareFiles.从TThread的例子猜测我已经看过我以为我会替换上面的代码TCompareFilesThread.Execute并将当前代码从Panel29Click放入TCompareFilesThread.Create然后添加
FEdit3Text := Edit3Text; …Run Code Online (Sandbox Code Playgroud) 我有一个电子表格,它使用一些基本代码来让用户选择一个文件(txt 文件)。它在 Windows 上完美运行,但在 OSX 上显然由于 FileDialog 调用的差异而失败。我已经做了一些研究,但似乎找不到太多有关在 OSX 和 Windows 上打开 Excel/VB 文件对话框的信息。
当前的代码是,
FileToOpen = Application.GetOpenFilename _
(Title:="Please choose a file to import", _
FileFilter:="Excel Files *.xls (*.xls),")
''
If FileToOpen = False Then
MsgBox "No file specified.", vbExclamation, "Duh!!!"
Exit Sub
Else
Workbooks.Open Filename:=FileToOpen
End If
Run Code Online (Sandbox Code Playgroud)