小编Noo*_*low的帖子

Objective-C中的新枚举

在最新的工具中,enum现在允许使用一种新的工具:

typedef enum CarType : NSUInteger {
  FourDoorCarType,
  TwoDoorCarType
} CarType;
Run Code Online (Sandbox Code Playgroud)

我的问题部分来自:

  1. 为什么我应该使用它而不是旧的方式?

  2. 为什么会CarType出现两次?我尝试跳过CarType第一行并将第一行留作" typedef enum : NSUInteger {",它似乎工作正常.有什么缺点,如果有的话?

  3. 有些类型NSUInteger可以使用吗?

cocoa objective-c

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

"-Weverything"产生"比较浮动点与==或!=是不安全的"

我有一个字符串,我转换为像这样的双:

double d = [string doubleValue];
Run Code Online (Sandbox Code Playgroud)

文档doubleValue告诉我们,在溢出时,此方法返回HUGE_VAL-HUGE_VAL.这就是我之前检查过的方法:

if (d == HUGE_VAL || d == -HUGE_VAL)
   //overflow
Run Code Online (Sandbox Code Playgroud)

现在,由于添加了新的"-Weverything"警告标志,编译器现在会抱怨

Comparing floating point with == or != is unsafe
Run Code Online (Sandbox Code Playgroud)

我该如何解决这个问题?如何应该我做这些比较?


关于比较两个"正常"浮点数(即不是"HUGE_VAL"),我也有同样的问题.例如,

double a, b;
//...
if (a != b) //this will now yield the same warning
  //...
Run Code Online (Sandbox Code Playgroud)

该如何解决?

cocoa objective-c llvm clang

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

对C++中头文件的实际目的感到困惑

可能重复:
在C++中为什么有头文件和cpp文件?

由于两个相互矛盾的原因,我不太了解C++头文件:

  1. 我认为头文件的目的通常是分离接口和实现.换句话说,客户端使用头文件来学习如何使用该类,但不必担心类如何在内部实际实现此功能.

  2. 那么,为什么它是头文件中指定的C++类的私有变量?

在我看来,在头文件中使用私有变量违反了接口和实现的分离.直觉上,我认为私有变量在源文件中更有意义,因为这是不暴露给外部世界的文件.

也许我只是误解了头文件的目的,而且1.上面只是完全错误?以什么方式?

c++

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

从层次结构中更深层的文件中调用$ _SERVER ['SCRIPT_NAME']

(初步说明:这里似乎有很多这个问题的变体,但它们似乎都集中在物理PHP文件本身的文件系统位置,而不是事物的Web URL位置,这就是我所追求的.)


简介1:

我有一个小的"网站",具有以下物理文件系统结构:

variable.php
folder
  test.php
Run Code Online (Sandbox Code Playgroud)

(换句话说,variable.php在顶级和test.php文件夹中folder.)

这是文件内容:

<?php
//variable.php
$basePath = dirname($_SERVER['SCRIPT_NAME']);
?>

<?php
//test.php
include("../variables.php");
echo $basePath;
?>
Run Code Online (Sandbox Code Playgroud)

简介2:

在本地开发此"网站"时,它位于以下地址:

http://localhost/~noob/test-website
Run Code Online (Sandbox Code Playgroud)

题:

问题是,如果我放入http://localhost/~noob/test-website/folder/test.php浏览器,它会打印出来/~noob/test-website/folder/.

我希望它打印出来/~noob/test-website(variable.php的"web位置").换句话说,我想从所有文件中的全球访问,甚至那些在文件系统层次更深,对/~noob/test-website.我该如何做到这一点?

我显然不想对此路径进行硬编码.原因是当我将其上传到生产服务器时,位置会变得更加清晰http://example.com/(并且我不希望在上传到之后修改此硬编码路径)服务器,当然这个问题).

php

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

为Xcode 4.5.2获取10.6 Base SDK

如何在Xcode 4.5.2中获取并使用10.6作为基础SDK?

我从Mac App Store下载了Xcode 4.5.2(通过Apple开发者网站上的链接).

有没有办法我可以单独下载10.6 SDK并开始使用它作为基础SDK?

奇怪的是,我可以通过Xcode的Preferences窗口下载10.6 SDK 的文档,但不能下载SDK本身.有任何想法吗?

xcode objective-c

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

使用innerHTML替换元素内容时避免闪烁

我的网站上有类似的东西,让垃圾邮件收集者的事情变得更加困难。默认情况下,该网站显示“noob (at) me (dot) com”,但 JavaScript 会将此文本替换为实际的电子邮件地址。

<span id="email">noob (at) me (dot) com</span>

<script type="text/javascript" src="email.js"></script>
<script type="text/javascript">
  document.getElementById('email').innerHTML = emailProducingFunction();
</script>
Run Code Online (Sandbox Code Playgroud)

这有效。但问题是,有时,在 JS 转换为真实电子邮件之前,原始文本会显示一瞬间,导致网站加载时出现短暂的“闪烁”效果。

有可能以某种方式避免这种情况吗?

一种“解决方案”是使用 CSS 隐藏电子邮件元素,然后使用 JS 使其取消隐藏。然而,这不是一个好的解决方案,因为该网站还应该兼容启用 CSS 但禁用 JS 的浏览器。

html javascript css

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

"-Weverything"在每个NSAssert都提出了"Varargs论证失踪,但作为一个扩展被容忍"的警告

在我将新内容添加-Weverything到Clang后other warning flags,我开始收到所有NSAsserts的警告:

Varargs argument missing, but tolerated as an extension
Run Code Online (Sandbox Code Playgroud)

我该如何解决此问题,或者禁止此警告?

cocoa objective-c llvm clang

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

Objective-C编码器转向C++ - 方法命名约定

作为Objective-C编码器,我已经习惯了描述性的方法名称,如

[car insertFuelWithAmount:fuelAmount
                     type:fuelType
  causesCarToSelfDestruct:NO];
Run Code Online (Sandbox Code Playgroud)

大多数程序员如何在C++中命名相应的方法?我有两个问题:

  1. 我的"C++ Primer"副本,第4版,提到(第46页),这gosh_this_is_an_impossibly_long_name_to_type是一个"非常糟糕的标识符名称".这与Objective-C中的心态不同,后者鼓励非常具有描述性的名称,即使它们很长.为什么C++程序员不喜欢长篇文章?

  2. 也许这不仅仅是盲目迁移,而是完全改变一个人的心态?如果是这样,需要做出哪些改变?

如果你不介意的话,请随意让自己的一些进一步的想法浮出水面.(我知道这不是一般性和模糊问题的论坛.因此,我试图在上面做一些更具体的事情.)

c++ objective-c

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

是无符号无符号长度的双倍总是双倍?

unsigned long long i = 1000;
Run Code Online (Sandbox Code Playgroud)

现在不0.1*i应该自动转换成双倍?当我传入0.1*i一个期望的函数参数时,为什么编译器没有警告我unsigned long long?我认为编译器应该警告这种潜在的精度损失.

我有我的编译器,Clang,配置"-Weverything"向我展示所有可能的警告.

c objective-c clang

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

在C++中相当于Objective-C的"valueForKey"方法?

假设我们有一个Objective-C 类或类NSArray的实例.这两个类都有这个方法.ShoeComputerage

Objective-C允许您在一个简单的声明中获得所有鞋子和计算机的年龄,如下所示:

NSArray *agesOfShoesAndComputers = [ourArray valueForKey:@"age"];
Run Code Online (Sandbox Code Playgroud)

C++是否有任何类似的方法可以应用于矢量,或者像C这样的东西在C++中总是有点麻烦?

c++ objective-c

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

此异常处理代码需要修复

这是我当前的异常处理代码.

请特别注意throw e;标有的线***.

try
{
  //some code that could cause exception
}
catch (FaultException e) //first catch a particular type of exception only
{
  if (Regex.IsMatch(e.Message, "something")) //satisfying a particular condition
  {
    Console.WriteLine("Particular exception occurred.");
    return;
  }
  else
    throw e; // <-- *** Problem! Not getting caught by the "catch" below.
}
catch (Exception e) //catch all other exceptions
{
  Console.WriteLine("General exception ocurred");
  return;
}
Run Code Online (Sandbox Code Playgroud)

问题是这样的:如果throw e; // <-- ***发生了,它就不会被决赛抓住catch.相反,应用程序只是崩溃,好像没有处理异常.

如何以最简单的方式解决这个问题?

您在第一个中 …

.net c#

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

标签 统计

objective-c ×7

c++ ×3

clang ×3

cocoa ×3

llvm ×2

.net ×1

c ×1

c# ×1

css ×1

html ×1

javascript ×1

php ×1

xcode ×1