在一两天内,我将准备好将我的iPhone应用程序提交到AppStore,我很好奇那些经历过这个过程的人是否有任何关于顺利提交过程的提示/建议.
这是我所涵盖的事情;
我有点不确定如何在info.plist中配置"Bundle Display Name"/"Bundle Identifier"和"Bundle Name".我理解第一个是iPhone本身显示的文字,但最后一个是什么?这是否必须匹配Bundle Identifier?
我应该在info.plist中添加其他任何内容吗?我注意到,当为Adhoc发布版本时,我的应用程序在iTunes中没有任何作者/标题信息.
在Cocoa中,如果我想循环遍历NSMutableArray并删除符合特定条件的多个对象,那么每次删除对象时如何在不重新启动循环的情况下执行此操作的最佳方法是什么?
谢谢,
编辑:只是为了澄清 - 我正在寻找最好的方式,例如比手动更新索引更优雅的东西.例如在C++中,我可以做;
iterator it = someList.begin();
while (it != someList.end())
{
if (shouldRemove(it))
it = someList.erase(it);
}
Run Code Online (Sandbox Code Playgroud) 在我的应用中,用户需要能够输入带小数位的数值.iPhone没有提供专门用于此目的的键盘 - 只有数字键盘和带数字和符号的键盘.
是否有一种简单的方法来使用后者并防止输入任何非数字输入而无需正则表达式最终结果?
谢谢!
NSInteger
/ NSUInteger
是常规内置类型的Cocoa定义替换.
在内置插件上使用NS*类型有什么好处吗?你更喜欢哪个?为什么?是NSInteger
和int
在32位/ 64位平台的宽度相同?
在Mac上有一个非常好的名为Sparkle的库,程序可以使用它来实现自动更新的检查/安装功能.
.NET有什么类似的东西吗?或者只是常规的Win32?
我有一个包含一个(或多个)键/值对的XML文件.对于这些对中的每一对,我想提取一个两字节十六进制值的值.
所以XML包含这个片段:
<key>LibID</key><val>A67A</val>
Run Code Online (Sandbox Code Playgroud)
我可以使用以下表达式匹配,括号中的ID.
Match match = Regex.Match(content, @"<key>LibID</key><val>([a-fA-F0-9]{4})</val>");
if (match.Success)
{
Console.WriteLine("Found Match for {0}\n", match.Value);
Console.WriteLine("ID was {0}\n", "Help me SO!");
}
Run Code Online (Sandbox Code Playgroud)
如何更改最后一部分,以便从匹配中返回ID?
干杯!
什么是导致Xcode难以破解的指令?例如,在Visual Studio下,我可以执行'_asm int 3'或'DebugBreak()'.在一些GCC实现下,它是asm("break 0")或asm("trap").
我在Xcode下尝试了各种组合而没有任何运气.(内联汇编程序工作正常,因此它不是语法问题).
作为参考,这是针对断言宏.我不想在assert.h中使用定义既可移植性,也因为它们似乎在XCode提供的版本中执行了abort().
约翰 - 超级,欢呼.作为参考,int 3语法是Intel Macs和iPhone所需的语法.
Chris - 感谢您的评论,但有很多理由要避免将标准的assert()函数移植到移植到不同平台的代码库.如果您已经解决了滚动自己断言的麻烦,通常是因为您希望保留其他功能(日志记录,堆栈展开,用户交互).
你试图通过'__sert'或类似的实现替换hander的建议不是可移植的.标准'assert'通常是一个宏,虽然它可能映射到Mac上的__assert,但它不在其他平台上.
我有一个整数向量,我想将它转换为对的向量(对由bool和int组成).我目前的代码很简单:
std::vector<int> a;
std::vector<std::pair<bool,int> > b;
a.push_back(1);
a.push_back(2);
a.push_back(3);
for(int i = 0; i < a.size(); ++i)
{
b.push_back(std::make_pair(false, a[i]));
}
Run Code Online (Sandbox Code Playgroud)
如果不自己编写循环,有没有办法做到这一点?可能使用一些算法?
在Visual Studio中,我经常仅将对象用于RAII目的.例如:
ScopeGuard close_guard = MakeGuard( &close_file, file );
Run Code Online (Sandbox Code Playgroud)
close_guard的全部目的是确保文件在函数退出时关闭,不在其他任何地方使用.但是,Visual Studio向我发出警告" 本地变量已初始化但未引用 ".我想针对这个特定情况关闭此警告.
你是如何处理这种情况的?Visual Studio认为这个对象没用,但这是错误的,因为它有一个非平凡的析构函数.
我不想为此使用#pragma警告指令,因为即使出于正当理由它也会关闭此警告.
鉴于所有原始数据类型和对象都分配了内存,因此直观地容易想象指向这些类型的指针.
但是函数指针究竟指向哪里?鉴于指令被转换为机器代码并驻留在内存中,我们是否应该考虑它们指向与函数指令开头相对应的内存位置?
由于非法内存访问,我们在指针中面临许多错误.当函数指针指向数据存储器而不是指令存储器时,是否会发生错误?
c++ ×3
.net ×2
cocoa ×2
iphone ×2
objective-c ×2
app-store ×1
auto-update ×1
c ×1
c# ×1
cocoa-touch ×1
debugbreak ×1
ios ×1
macos ×1
pointers ×1
regex ×1
stl ×1
types ×1
warnings ×1
xcode ×1