用于创建sqrt()的更快实现的旧技巧(查找表,近似函数)是否仍然有用,或者是现代编译器和硬件的默认实现?
这是我正在编写的一些代码的要点.我担心我没有正确解决NSMutableArray上数组类方法的保留/释放问题.以下是否实际泄漏记忆?
for(a while) {
// do stuff
NSMutableArray *a = nil;
// do stuff
if (!a) {
a = [NSMutableArray array];
}
} // for(a while)
Run Code Online (Sandbox Code Playgroud) 在iPhone上我需要获取资源的路径.好的,完成了,但是当谈到CFURLCreateFromFileSystemRepresentation的事情时,我只是不知道如何解决这个问题.为什么会出现此错误?任何解决方案或解决方法都将受到高度赞赏.先感谢您.
我已经看了下面的例子,以便在iPhone上使用AudioQueue播放音频:SpeakHere,AudioQueueTools(来自SimpleSDK目录)和AudioQueueTest.我试着这样做,并尝试将难题放在一起.现在,我被困在这里.由于上面的sndFile引发了异常,程序崩溃了.
我正在使用AVAudioPlayer播放iPhone游戏中的所有声音.在真正的iPhone设备上,当播放声音时结果非常迟钝,所以我决定使用AudioQueue.
- (id) initWithFile: (NSString*) argv{
if (self = [super init]){
NSString *soundFilePath = [[NSBundle mainBundle]
pathForResource:argv
ofType:@"mp3"];
int len = [soundFilePath length];
char* fpath = new char[len];
//this is for changing NSString into char* to match
//CFURLCreateFromFileSystemRepresentation function's requirement.
for (int i = 0; i < [soundFilePath length]; i++){
fpath[i] = [soundFilePath characterAtIndex:i];
}
CFURLRef sndFile = CFURLCreateFromFileSystemRepresentation
(NULL, (const UInt8 *)fpath, strlen(fpath), false);
if (!sndFile) {
NSLog(@"sndFile error");
XThrowIfError (!sndFile, "can't parse file path");
}
}
Run Code Online (Sandbox Code Playgroud) 我正在使用a NSTextField来显示将在具有可变纸张尺寸的打印机上打印的文本行(打印机打印到卷轴,在作业完成时将其切割到适当的长度).
我可以生成文本没问题,但我需要知道NSTextField(垂直)有多大,以便它完全包含所有文本行.有一个简单的方法来解决这个问题吗?
NSAttributedString如果有帮助,文本准备为,并且线都是固定宽度(没有包装).
我目前正在uiwebview中显示文本.但是,我想允许用户选择文本并使用所选文本执行某些操作(google it).Apple已经使用iBooks完成了这类工作.单击单词时,您可以选择在字典中查找单词.如何使用Webview做同样的事情?
UIMenuController似乎是我需要关注的.但我找不到任何关于如何做到这一点的示例代码.我是iPhone新手,请帮助.
我有一个NSDictionary对象,其中包含大量自定义对象.对象将是B类或C类,它们都从A类继承.如果对象是B类,它们将有一个内部标志(kindOfCIsh),用于将来的分组.
在程序的不同时间,如何获得包含这些对象的不同分组的NSDictionary(或NSArray)?在一种情况下,我将需要所有B,但另一次我将需要所有C对象,以及满足(kindOfCIsh == true)的B对象.
有没有一种简单的方法来访问这些子集?也许使用过滤谓词?当然,我可以遍历整个字典并手动构建所需的子集,但我感觉有更好的方法.
任何帮助表示赞赏.
我正在慢慢地将我的应用程序构建到一个工作状态.
我正在使用两个叫做setCollection和的函数addToCollection.这些功能都接受NSArray为输入.
我也有一个函数调用add,我使用这两个函数.当我尝试编译时,Xcode显示错误:
'setCollection'未声明(首次在此函数中使用)
我想这与在活动函数下定义的函数有关.另一个猜测是函数应该全局化,以便在我的add函数中可用.
我通常是一个php编码器.Php处理这个问题的方式是第一个.调用的函数应该在使用它们的函数之前,否则它们就不存在了.有没有办法让函数在运行时仍然可用,或者我应该重新排列所有函数以使它们正常运行?
下面的代码在声明迭代器的行生成语法错误:
template <typename T>
class A
{
public:
struct B
{
int x, y, z;
};
void a()
{
std::map<int, B>::const_iterator itr; // error: ; expected before itr
}
std::vector<T> v;
std::map<int, B> m;
};
Run Code Online (Sandbox Code Playgroud)
这只有在A是模板化类时才会发生.这段代码出了什么问题?如果我将B移出A,代码编译得很好.
我正在尝试构建一个嵌套数组:首先,我创建一个"PlayerItems"数组,其中包含10个数组,每个数组包含项目对象,对应于游戏中每个玩家的库存.在指示的行上,我收到以下错误:
错误:void值不应该被忽略,因为它应该是
这里的空值是多少?如果我使用[[PlayerItems objectAtIndex:i] addObject:myitem],程序编译但崩溃.如果我评论该行,它编译并运行正常.谢谢您的帮助!
self.PlayerItems = [[NSMutableArray alloc] initWithCapacity:11];
NSMutableArray *itemarray = [[NSMutableArray alloc] initWithCapacity:60];
item *myitem = [[item alloc] init];
item.kind = 1;
for (int i = 1; i < 10; i++) {
itemarray = [[NSMutableArray alloc] initWithCapacity:60];
[PlayerItems addObject:itemarray];
for (int i2 = 1; i2 < 50; i2++) {
myitem = [[item alloc] init];
myitem.kind = 1;
// The error occurs on the line below:
((NSMutableArray *) [[PlayerItems objectAtIndex:i] addObject:myitem]);
}
}
Run Code Online (Sandbox Code Playgroud) 每当我尝试运行此代码时,此代码都会返回错误.有人可以帮帮我吗.
struct m
{
virtual int s( )
{
return 1;
}
};
struct n : public m
{
int s( )
{
return 2;
}
};
int o( )
{
n* p=new m;
m* q=dynamic_cast<p>;
return q->s( );
}
Run Code Online (Sandbox Code Playgroud) cocoa ×4
objective-c ×3
c++ ×2
iphone ×2
nested ×2
arrays ×1
c ×1
cocoa-touch ×1
core-audio ×1
declaration ×1
function ×1
ibooks ×1
ios4 ×1
measurement ×1
nsdictionary ×1
nstextfield ×1
optimization ×1
performance ×1
stdmap ×1
subset ×1
templates ×1
text ×1
uiwebview ×1
xcode ×1