我有一个返回NSRange的方法.当我从类外部调用此方法时,我收到编译错误.
NSRange tmpRange;
tmpRange = [phrase rangeInString:searchString forString:theLetter goingForward:YES];
return tmpRange.location == -1;
Run Code Online (Sandbox Code Playgroud)
在.h文件中:
#import <Foundation/Foundation.h>
@interface Phrase : NSObject {
}
- (NSRange) rangeInString:(NSString *) tgt forString:(NSString *) find goingForward:(BOOL) fwd;
@end
Run Code Online (Sandbox Code Playgroud)
通过其他方法在Phrase对象中调用此方法没有问题.编译器说"赋值中的不兼容类型".
任何人都可以向我解释这个吗?我假设它与返回在对象外部生成的NSRange/struct类型值有关,但我不知道它为什么在一个地方而不是另一个地方工作.
是否有任何库可以解析Textile(Textile to HTML),它可以在Objective C iPhone应用程序中运行?C库也可以工作.
更新:我在C/Obj-C中找不到任何充分开发的库,但我找到了一个用Javascript编写的库,我通过一个看不见的UIWebView使用它.
我正在为iPhone编写远程桌面客户端,我正在尝试实现音频重定向.
客户端通过套接字连接连接到服务器,服务器一次发送32K块PCM数据.
我正在尝试使用AQS播放数据,它播放前两秒(1个缓冲区值).但是,由于下一个数据块尚未进入套接字,因此下一个AudioQueueBuffer为空.当数据进入时,我用数据填充下一个可用缓冲区并将其与AudioQueueEnqueueBuffer一起排队.但是,它永远不会播放这些缓冲区.
如果队列中没有缓冲区,队列是否会停止播放,即使您稍后添加了缓冲区?
这是代码的相关部分:
void
wave_out_write(STREAM s, uint16 tick, uint8 index)
{
if(items_in_queue == NUM_BUFFERS){
return;
}
if(!playState.busy){
OSStatus status;
status = AudioQueueNewOutput(&playState.dataFormat, AudioOutputCallback, &playState, CFRunLoopGetCurrent(), NULL, 0, &playState.queue);
if(status == 0){
for(int i=0; i<NUM_BUFFERS; i++){
AudioQueueAllocateBuffer(playState.queue, 40000, &playState.buffers[i]);
}
AudioQueueAddPropertyListener(playState.queue, kAudioQueueProperty_IsRunning, MyAudioQueuePropertyListenerProc, &playState);
status = AudioQueueStart(playState.queue, NULL);
if(status ==0){
playState.busy = True;
}
else{
return;
}
}
else{
return;
}
}
playState.buffers[queue_hi]->mAudioDataByteSize = s->size;
memcpy(playState.buffers[queue_hi]->mAudioData, s->data, s->size);
AudioQueueEnqueueBuffer(playState.queue, playState.buffers[queue_hi], 0, 0);
queue_hi++;
queue_hi = queue_hi % NUM_BUFFERS;
items_in_queue++; …
Run Code Online (Sandbox Code Playgroud) 我注意到一些意想不到的行为.在过去的几个月中,Firefox,Flash播放器或两者都发生了变化,使得处于非活动浏览器选项卡中的Flash电影不再实时执行.它们似乎仍然可以执行,但只能以突发方式执行,而不是以可预测的方式执行.这是一个问题,因为我开发了一个基于Flash(Actionscript 2.0,Flash CS3)的多人游戏,可以维持网络连接并允许玩家聊天等.
我们的许多玩家抱怨Firefox在玩游戏时崩溃.我也注意到了它,不是太频繁,但它每周都会崩溃几次.(Firefox崩溃,我没有收到来自Flash播放器的消息,表明我的代码中存在无限循环或问题)我的理论是,当我的游戏中存在大量活动时,这种新行为导致崩溃,导致大量未处理我的游戏的网络流量在Firefox/Flash之前获得缓冲将使其有机会执行.这可能导致缓冲区溢出或数据包丢失,结果导致崩溃.有时我会切换回运行我的游戏的标签并发现一个显示错误,看起来好像Flash完全无法执行它应该执行的操作.我会假设这种新行为是故意的,例如,防止非活动选项卡中的所有基于Flash的广告执行,从而杀死性能.
在对Chrome(5.0.342.9测试版)的快速测试中,Flash的"暂停"似乎也存在,但不知何故,它似乎不是一个问题.我的用户只抱怨Firefox崩溃,而不是其他浏览器.
我的机器:
有任何想法吗?理想情况下,我想为我的Flash游戏禁用此行为,以便即使在非活动选项卡中也可以实时执行.谢谢你的帮助!
我一直在尝试将用户重定向到评论页面.
我尝试了3种不同的URL格式:
{} http://phobos.apple.com/WebObjects/MZStore.woa/wa/viewSoftware?id=350212768&mt=8
(转到safari上的产品页面)
{ http://itunes.apple.com/us/app/british-accent/id350212768?mt=8# }
(转到设备上iTunes商店的产品页面)
(导致重定向过多)
您能告诉我直接链接到评论页面的URL格式吗?谢谢.
是否可以将对象从一个应用程序传输到另一个应用程序(在C#中)?
我正在使用CAD API.该API的初始化需要几秒钟(10 - 15).如果我只能在App1中初始化对象一次,并在需要时从App2调用它,那就太好了.
有任何想法吗?谢谢!
我正在开展其中一个项目,其中有一百万个更好的方法来完成我需要的东西,但我别无选择,我必须这样做.这里是:
有一个Web表单,当用户填写它并点击提交时,使用表单数据创建一个人类可读的文本文件.它看起来像这样:
field_1: value for field one
field_2: value for field two
more data for field two (field two has a newline in it!)
field3: some more data
Run Code Online (Sandbox Code Playgroud)
我的问题是:我需要将此文本文件解析回Web表单,以便用户可以编辑它.
我怎么能以万无一失的方式实现这一目标呢?数据库不是一个选项,我必须使用这些文本文件.
我的问题:
这个项目使用PHP.
UPDATE
通过人类可读,我的意思是任何人都可以阅读文本,而不是被它淹没,包括你的祖母.
这是一个令人尴尬的问题,但即使是boost.interprocess提供的精心编写的文档也不足以让我弄清楚如何做到这一点.
我有一个cached_adaptive_pool分配器实例,我想用它来构造一个对象,传递构造函数参数:
struct Test {
Test(float argument, bool flag);
Test();
};
// Normal construction
Test obj(10, true);
// Normal dynamic allocation
Test* obj2 = new Test(20, false);
typedef managed_unique_ptr<
Test, boost::interprocess::managed_shared_memory>::type unique_ptr;
// Dynamic allocation where allocator_instance == cached_adaptive_pool,
// using the default constructor
unique_ptr obj3 = allocator_instance.allocate_one()
// As above, but with the non-default constructor
unique_ptr obj4 = allocator_instance ... ???
Run Code Online (Sandbox Code Playgroud)
这可能是我在如何使用分配器对象方面的失败.但在任何情况下,我都看不到如何使用这个特定的分配器,使用cached_adaptive_pool中指定的接口将构造函数参数传递给我的对象.
cached_adaptive_pool
有方法:void construct(const pointer & ptr, const_reference v)
但我不明白这意味着什么,我找不到使用它的例子.
我的头一整天都在模板中游泳,所以即使答案很明显,也会非常感激.
我的问题的根源是C#编译器太聪明了.它可以检测通过该物体可能是不确定的路径,这样的要求,我填满它.在代码中,我看在DataSet中的表,看是否有一个我想要的.如果没有,我会创建一个新的.我知道,dtOut总是被分配一个值,但除非它声明时所分配的值,编译器不开心.这是不优雅的.
如何以更优雅的方式重写它?
System.Data.DataTable dtOut = new System.Data.DataTable();
.
.
// find table with tablename = grp
// if none, create new table
bool bTableFound = false;
foreach (System.Data.DataTable d1 in dsOut.Tables)
{
string d1_name = d1.TableName;
if (d1_name.Equals(grp))
{
dtOut = d1;
bTableFound = true;
break;
}
}
if (!bTableFound) dtOut = RptTable(grp);
Run Code Online (Sandbox Code Playgroud) 我有以下内容
<label for="Forename">Forename</label>
<%= Html.TextBoxFor(m => m.Customer.Name.Forename) %>
Run Code Online (Sandbox Code Playgroud)
这个问题是这个呈现为
<label for="Forename">Forename</label>
<input type="text" value="" name="Customer.Name.Forename" id="Customer_Name_Forename">
Run Code Online (Sandbox Code Playgroud)
不是我想要的.
我想要一个扩展来正确呈现标签(即使用具有输入id值的for =""属性),在我编写自己的扩展之前,MVC 2中有什么东西可以做到这一点吗?