#defines如何在Objective-C中工作?
我有C/C++的背景,我现在正在尝试选择Objective-C.#defines似乎在objective-c中的工作方式与它们在c和C++中的工作方式相同,其中编译器只是将所有对定义的引用替换为它们应该表示的内容.
当我尝试在Objective-C中使用#defines时,它们有时只能工作.就像我做这样的事情;
#define NUMBER 5
int myArray[NUMBER];
Run Code Online (Sandbox Code Playgroud)
我得到编译器错误,说有一个方括号丢失,如果我使用这一行而不是它工作正常;
int myArray[5];
Run Code Online (Sandbox Code Playgroud)
当然这些都应该是一回事吗?
此外,如果我尝试在任何类型的方程中使用#define值,我会得到类似的编译器错误.这段代码不起作用;
#define NUMBER 5
float var = NUMBER * 0.2;
Run Code Online (Sandbox Code Playgroud)
哪个好,
float var = 5 * 0.2;
Run Code Online (Sandbox Code Playgroud)
任何人都知道为什么会这样,或者Objective-C编译器如何以不同的方式处理#defines.顺便说一下,我正在使用XCode,只是因为这会产生影响.
我目前正在花费一些时间将我的网络单元转换为支持 unicode 字符串,到目前为止一切进展顺利(至少我这么认为)。不幸的是,我正在开发Delphi 7,所以我无法测试实际的 unicode 支持,并且我没有较新的 Delphi 版本的文档。
我在代码中使用了一些 TReader 和 TWriter 对象,通过 ReadString 和 WriteString 方法来流式传输字符串。在 D7 上,他们使用等于AnsiString 的String 类型。如果我理解正确的话,在 D2009/D2010 中 String 类型等于UnicodeString。那么有谁知道在 D2009/D2010 中使用 ReadString 和 WriteString 方法时 TReader 和 TWriter是否自动流式传输 UnicodeString 格式的字符串,还是我需要更改某些内容?
通常我可以通过更改值来改变Python中的stdout sys.stdout.但是,这似乎只会影响print陈述.那么,有什么方法可以抑制通过os.system()Python中的命令运行的程序的输出(到控制台)?
这个问题适用于ASP.NET和SQL Server开发人员.在设置开发和测试环境方面,您的最佳实践是什么?我对以下问题感兴趣:
谢谢.
我正在从Head First PHP和MySQL一起学习PHP和MySQL ,在书中,他们经常拆分他们的长字符串(超过80个字符)并连接它们,如下所示:
$variable = "a very long string " .
"that requires a new line " .
"and apparently needs to be concatenated.";
Run Code Online (Sandbox Code Playgroud)
我对此没有任何问题,但令我感到奇怪的是,其他语言的空格通常不需要连接.
$variable = "you guys probably already know
that this simply works too.";
Run Code Online (Sandbox Code Playgroud)
我试过这个,它工作得很好.换行总是用空格解释吗?如果它们跨越一行,甚至PHP手册也不会在echo示例中连接.
我应该遵循我的书的例子还是什么?我无法分辨哪个更正确或"正确",因为工作和手册甚至采用更短的方法.我还想知道将代码宽度保持在80个字符以下有多重要?因为我的显示器非常大而且我讨厌当我有屏幕空间时我的代码被缩短了,所以我一直很好用单词扭曲.
这似乎是过去25岁以上显示器的遗物.我正在寻找stackoverflow成员对此的看法,你是否总是尊重这一建议.
我正在用C#编写一个应用程序,它要求我Array从用户传入的某些维度动态创建一个对象.该Array.CreateInstance()方法可以抛出(通过最后计数)我想要处理的6个不同的异常.对于每个例外情况,我都希望通过一个简单MessageBox.Show()的消息来告知用户,并根据特殊情况定制消息.我不想做的是抓住一般Exception类型,因为不这样做是最好的做法.我会尝试捕获ArgumentException或更具体的东西,但所有异常的唯一常见超类是Exception.
结论:我正在试图找出处理这么多不同异常的最佳方法,以及什么是有效的,更重要的是可维护的解决方案.
try
{
data = Array.CreateInstance(TypeHelper.StringToType(cbDataType.SelectedItem.ToString()), dimensions);
}
catch (OutOfMemoryException) { }
catch (NullReferenceException) { }
catch (NotSupportedException) { }
catch (ArgumentNullException) { }
catch (ArgumentOutOfRangeException) { }
catch (ArgumentException) { }
Run Code Online (Sandbox Code Playgroud) 所以我有两个数组.其中一个看起来像这样(它的值或元素的数量可以改变):
array('4dec' , 'def3', 'a3d6', 'd12f');
Run Code Online (Sandbox Code Playgroud)
和另外一个:
array(array('id' => 'd12f', 'name' => 'John'),
array('id' => 'a5f1', 'name' => 'Kathy'),
array('id' => 'def3', 'name' => 'Jane'),
array('id' => 'a3d6', 'name' => 'Amy'),
array('id' => '4dec', 'name' => 'Mary'),
array('id' => 'ecc2', 'name' => 'Fred'));
Run Code Online (Sandbox Code Playgroud)
(这个不应该改变,元素和值每次都是相同的).
注意第一个有第二个元素.如何根据第一个元素对第二个数组进行排序?
基本上,在这种情况下,第二个数组应该成为:
array(array('id' => '4dec', 'name' => 'Mary'),
array('id' => 'def3', 'name' => 'Jane'),
array('id' => 'a3d6', 'name' => 'Amy'),
array('id' => 'd12f', 'name' => 'John'),
array('id' => 'a5f1', 'name' => 'Kathy'),
array('id' => 'ecc2', 'name' …Run Code Online (Sandbox Code Playgroud) 我有一个围绕图像的标签.我在标签所在的div上设置了边框.我将边距和填充设置为0但是由于某种原因,我的标签仍然比我的图像高约3个像素.这会在图像和边框之间留下一些空间,从而破坏了我想要完成的外观.
我究竟做错了什么?我已经在FireFox和Chrome中测试过相同的结果.谢谢