小编Max*_*rke的帖子

在目标C中将十六进制数据字符串转换为NSData(可可)

相当新的iPhone开发人员.构建一个应用程序,通过TCP/IP套接字连接向设备发送RS232命令.我已经将通信部分关闭,并且可以发送ASCII命令.这是我遇到问题的十六进制代码命令.

所以我要说我要发送以下十六进制数据(采用这种格式):

\ X1C\x02d\X00\X00\X00\XFF\0x7F部分

如何将其转换为我的send方法所期望的NSData对象?

显然这对于​​这个十六进制数据不起作用(但是对于标准的ascii命令):

NSString *commandascii;
NSData *commandToSend;
commandascii = @"\x1C\x02d\x00\x00\x00\xFF\x7F";
commandToSend = [commandascii dataUsingEncoding:NSStringEncoding];
Run Code Online (Sandbox Code Playgroud)

首先,一些\ x十六进制代码是转义字符,在XCode中编译时,我收到"输入转换已停止..."警告.并且NSStringEncoding显然不适合这个十六进制字符串.

所以第一个问题是如何存储这个十六进制字符串我猜,然后如何转换为NSData.

有任何想法吗?

iphone cocoa hex objective-c nsdata

10
推荐指数
2
解决办法
4万
查看次数

核心数据应用程序崩溃"controllerWillChangeContent:无法识别的选择器发送到实例"

我有一个包含2个视图的核心数据应用程序.第一个视图列出"房间",第二个视图列出房间中的"场景"."房间"页面有一个编辑NavItem按钮,按下该按钮可启用添加NavItem按钮.您可以从此处删除和添加房间.添加的房间只是在表格中显示默认的"新房间"名称.第二个视图是所选房间中的场景列表.同样在这里,您可以删除和添加场景,添加的场景只会出现在名为"新场景"的表格中.没什么特别的.

FetchedResultsController在两个视图控制器中都使用了一个,其中一个场景NSPredicate只能返回所选房间的场景.我还使用了controllerWillChangeContent,controllerDidChangeContent等,为表视图更新委托方法.

这一切都很好,但通常在房间和场景周围导航然后尝试删除一个场景它会崩溃.如果你玩的时间足够长,它将不可避免地崩溃.它只在删除场景时发生.如果您按下编辑按钮并删除一个场景并且它可以正常工作,则该编辑会话中的所有以下删除操作将始终有效.它只会在第一次删除编辑会话时崩溃.

我得到的错误很奇怪:

由于未捕获的异常'NSInvalidArgumentException'终止应用程序,原因:' - [__ NSCFType controllerWillChangeContent:]:无法识别的选择器发送到实例0x5e02d70'

此错误的第一部分有时会发生变化.有时它是__NSCFType,有时它是CALayer.仅在删除场景时才会出现此错误.添加场景很好100%.

我已经阅读了另一篇关于stackoverflow的文章,该文章表明这​​些错误可能来自内存管理问题.我已经仔细检查了代码,并通过仪器与泄漏仪器一起运行.没有泄漏.

还有什么我可以检查的吗?有任何想法吗?

这是相关的代码..

来自ScenesTableViewController.m:

// used to show/hide the add button

- (void)setEditing:(BOOL)editing animated:(BOOL)animate
{
    [super setEditing:editing animated:animate];
    if(editing)
    {
        self.navigationItem.leftBarButtonItem = addButton;
    }
    else
    {
        self.navigationItem.leftBarButtonItem = nil;
    }
}

// called when the add button is pressed

- (void)addAction {
    NSEntityDescription *myContentEntity = [NSEntityDescription entityForName:@"Scene" inManagedObjectContext:managedObjectContext];
    Scene *contentToSave = [[Scene alloc] initWithEntity:myContentEntity insertIntoManagedObjectContext:managedObjectContext];
    [contentToSave setValue:@"New Scene" …
Run Code Online (Sandbox Code Playgroud)

iphone core-data nsfetchedresultscontroller ios

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

识别iOS上的特定声音

我希望能够识别iOS应用程序中的特定声音.我猜它基本上像语音识别一样工作,因为它相当模糊,但它只需要1个特定的声音.

我已经做了一些快速的FFT工作来识别超过某个阈值的特定频率,并且只有当它们是独奏时(即,它们没有被其他频率包围),所以我可以非常容易地识别单个音调.我认为这只是一个扩展,但与声音录制的FFT数据集相比,并比较音频长度上的0.1秒块.而且我还必须考虑幅度的变化,一点点的音调和一点点的时间.

有人能指出我可以用来加速这个过程的任何预先存在的来源吗?我似乎无法找到任何可用的东西.或者失败了,关于如何开始这样的事情的任何想法?

非常感谢

audio fft ios

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

django - HttpRequest对象没有属性'session'

我似乎无法让会议工作.Django抱怨HttpRequest对象没有名为'session'的属性.在文档中,它清楚地表明,如果您启用了中间件,并且已安装的应用程序中包含django.contrib.sessions,那么您就可以开始了.我使用单元测试得到这个错误.

在我的views.py中:

def home_page(request):
    response = render(request, 'home.html', {'message_text' : request.session.get('message_text', ''),
'ip_address'    :   request.session.get('ip_address', ''),
'port_number'   :   request.session.get('port_number', ''),
'command_text'  :   request.session.get('command_text', ''),})

    request.session['message_text'] = ''

    return response
Run Code Online (Sandbox Code Playgroud)

我试图获得的会话值是我试图在views.py中的其他地方的表单post方法中设置的.

它还声明在新项目上默认启用这些.所以我创建了一个全新的django项目并在控制台中检查了session属性.这正是我所做的:

(django1.5)Python $ django-admin.py startproject testing
(django1.5)Python $ cd testing/
(django1.5)testing $ python manage.py shell
Python 2.7.3 (v2.7.3:70274d53c1dd, Apr  9 2012, 20:52:43) 
[GCC 4.2.1 (Apple Inc. build 5666) (dot 3)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
(InteractiveConsole)
>>> from django.http import HttpRequest
>>> r = …
Run Code Online (Sandbox Code Playgroud)

django session httprequest django-unittest

4
推荐指数
2
解决办法
7637
查看次数