问题列表 - 第24586页

一个方法可以返回NSRange吗?

我有一个返回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类型值有关,但我不知道它为什么在一个地方而不是另一个地方工作.

iphone macos cocoa cocoa-touch objective-c

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

Objective-C中的纺织品解析?

是否有任何库可以解析Textile(Textile to HTML),它可以在Objective C iPhone应用程序中运行?C库也可以工作.

更新:我在C/Obj-C中找不到任何充分开发的库,但我找到了一个用Javascript编写的库,我通过一个看不见的UIWebView使用它.

链接:Javascript纺织品解析器

c iphone parsing objective-c textile

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

使用音频队列服务通过套接字连接播放PCM数据

我正在为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)

iphone audioqueueservices

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

非活动浏览器选项卡中的Flash影片暂停或不实时执行

我注意到一些意想不到的行为.在过去的几个月中,Firefox,Flash播放器或两者都发生了变化,使得处于非活动浏览器选项卡中的Flash电影不再实时执行.它们似乎仍然可以执行,但只能以突发方式执行,而不是以可预测的方式执行.这是一个问题,因为我开发了一个基于Flash(Actionscript 2.0,Flash CS3)的多人游戏,可以维持网络连接并允许玩家聊天等.

我们的许多玩家抱怨Firefox在玩游戏时崩溃.我也注意到了它,不是太频繁,但它每周都会崩溃几次.(Firefox崩溃,我没有收到来自Flash播放器的消息,表明我的代码中存在无限循环或问题)我的理论是,当我的游戏中存在大量活动时,这种新行为导致崩溃,导致大量未处理我的游戏的网络流量在Firefox/Flash之前获得缓冲将使其有机会执行.这可能导致缓冲区溢出或数据包丢失,结果导致崩溃.有时我会切换回运行我的游戏的标签并发现一个显示错误,看起来好像Flash完全无法执行它应该执行的操作.我会假设这种新行为是故意的,例如,防止非活动选项卡中的所有基于Flash的广告执行,从而杀死性能.

在对Chrome(5.0.342.9测试版)的快速测试中,Flash的"暂停"似乎也存在,但不知何故,它似​​乎不是一个问题.我的用户只抱怨Firefox崩溃,而不是其他浏览器.

我的机器:

  • Windows 7 x64
  • Firefox 3.6.3
  • Flash Player 10.1.50.426
  • 我的游戏:triplejack.com

有任何想法吗?理想情况下,我想为我的Flash游戏禁用此行为,以便即使在非活动选项卡中也可以实时执行.谢谢你的帮助!

html flash firefox tabs

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

从iPhone直接链接到"撰写评论"页面

我一直在尝试将用户重定向到评论页面.

我尝试了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商店的产品页面)

{ http://itunes.apple.com/WebObjects/MZStore.woa/wa/viewContentsUserReviews?id=350212768&pageNumber=0& sortOrdering = 1&type = Purple + Software&mt = 8 }

(导致重定向过多)

您能告诉我直接链接到评论页面的URL格式吗?谢谢.

iphone app-store

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

在两个独立应用程序之间传输对象(C#)

是否可以将对象从一个应用程序传输到另一个应用程序(在C#中)?

我正在使用CAD API.该API的初始化需要几秒钟(10 - 15).如果我只能在App1中初始化对象一次,并在需要时从App2调用它,那就太好了.

有任何想法吗?谢谢!

c# oop data-transfer object transfer

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

我需要一个人类可读,但可解析的文档格式

我正在开展其中一个项目,其中有一百万个更好的方法来完成我需要的东西,但我别无选择,我必须这样做.这里是:

有一个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

通过人类可读,我的意思是任何人都可以阅读文本,而不是被它淹没,包括你的祖母.

php parsing text-files human-readable

18
推荐指数
3
解决办法
1820
查看次数

C++分配器,特别是将构造函数参数传递给使用boost :: interprocess :: cached_adaptive_pool分配的对象

这是一个令人尴尬的问题,但即使是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++ templates boost allocator boost-interprocess

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

如何避免以优雅的方式创建不需要的对象?

我的问题的根源是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)

c#

5
推荐指数
2
解决办法
283
查看次数

Asp.net MVC标签

我有以下内容

 <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中有什么东西可以做到这一点吗?

asp.net-mvc-2

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