相当新的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.
有任何想法吗?
我有一个包含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) 我希望能够识别iOS应用程序中的特定声音.我猜它基本上像语音识别一样工作,因为它相当模糊,但它只需要1个特定的声音.
我已经做了一些快速的FFT工作来识别超过某个阈值的特定频率,并且只有当它们是独奏时(即,它们没有被其他频率包围),所以我可以非常容易地识别单个音调.我认为这只是一个扩展,但与声音录制的FFT数据集相比,并比较音频长度上的0.1秒块.而且我还必须考虑幅度的变化,一点点的音调和一点点的时间.
有人能指出我可以用来加速这个过程的任何预先存在的来源吗?我似乎无法找到任何可用的东西.或者失败了,关于如何开始这样的事情的任何想法?
非常感谢
我似乎无法让会议工作.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)