我找不到任何关于此事的内容,我从未对推送通知做过任何事情(但我清楚地知道它们是如何工作的).在小牛队,现在OS X可以从网站等各种东西接收推送通知,iPhone模拟器可以接收推送通知吗?我从2013年中期找到了很多答案,早些时候说"不",但所有这些都已经过时了,因为最近刚刚发布了Mavericks的新推送功能.
我即将开始研究一个应该使用推送通知的学校项目的应用程序,除非我想要便宜并且只是轮询服务器.我知道您需要一个iOS开发者帐户来使用推送通知,但如果我可以在我的计算机上进行测试,这会让我的生活变得更轻松.
我有这个问题,除了Swift.如何Type在泛型中使用变量?
我试过这个:
func intType() -> Int.Type {
return Int.self
}
func test() {
var t = self.intType()
var arr = Array<t>() // Error: "'t' is not a type". Uh... yeah, it is.
}
Run Code Online (Sandbox Code Playgroud)
这也不起作用:
var arr = Array<t.Type>() // Error: "'t' is not a type"
var arr = Array<t.self>() // Swift doesn't seem to even understand this syntax at all.
Run Code Online (Sandbox Code Playgroud)
有没有办法做到这一点?我觉得Swift不支持它并且给我一些含糊不清的错误信息.
编辑:这是一个更复杂的例子,使用通用函数头无法规避问题.当然它没有意义,但我在我的代码中的某个地方明智地使用了这种功能,而宁愿发布一个干净的例子而不是我的实际代码:
func someTypes() -> [Any.Type] {
var ret = [Any.Type]()
for (var i = …Run Code Online (Sandbox Code Playgroud) 当我运行在iPhone 5上使用CoreBluetooth的应用程序时,我一直收到此错误: <CBConcreteCentralManager: 0x2007d590> is not powered on
但是当我调用state我的程序的唯一一个CBCentralManager对象时,它返回5,即CBCentralManagerStatePoweredOn.所以它已启动,但我收到此错误.iPhone的蓝牙也已启用.
总的来说,什么时候会发生?我甚至不知道程序运行时发生了什么,因为我得到了看起来像冲突的消息.
我把我的main.c文件用Mac OS X中的gcc -std = c1x -c main.c编译,它没有错误,工作正常.然后我在LinuxMint和Raspberry Pi上执行完全相同的操作,在这两种情况下,它都给出了"初始化元素不是常量"的错误.
带有相关代码的问题行的一个示例:
//STATIC GLOBAL CONSTANTS
const unsigned long long LATITUDE = (long) 3600000;
const unsigned long long LONGITUDE = (long) 1810000;
const unsigned long long MAX_COORDINATES_NUMBER = (LATITUDE-1) + LATITUDE*(LONGITUDE-1); //compiler error: initializer element is not constant
Run Code Online (Sandbox Code Playgroud)
它应该让我做算术,对吗?我可以用实际数字替换它,它会起作用,但随后会变得混乱.无论如何,它在我的Mac上运行良好.在GCC中是否有一些选项我必须在Linux上指定(除了-std = c1x,你在Mac上也不需要)?
我的iOS程序正在接收JSON数据并尝试解析它,但由于某种原因我总是无法确定.多个线程几乎同时调用此函数.一旦我切换到使用GCDAsyncSocket,这才开始发生,奇怪的是.以下是接收和解析数据的相关代码:
// Called whenever I want my program to receive null-terminated data from the server:
[socket readDataToData:[NSData dataWithBytes:"\0" length:1] withTimeout:10 tag:0];
- (void)socket:(GCDAsyncSocket *)sender didReadData:(NSData *)data withTag:(long)tag{ // a GCDAsyncSocket delegate method
[self didReceiveNetworkData:data];
}
- (void)didReceiveNetworkData: (NSData*) data{
if (TESTING) NSLog(@"Received network data of length %lu===\n%@\n===", (unsigned long) data.length, [[NSString alloc] initWithData: data encoding:NSUTF8StringEncoding]);
NSError* error;
NSDictionary* json = [NSJSONSerialization
JSONObjectWithData: data
options:kNilOptions
error:&error];
if (!json){
NSLog(@"Got an error parsing received JSON data: %@", error);
return;
}
// Then …Run Code Online (Sandbox Code Playgroud) 两个相等大小的矢量(实数)之间的余弦相似性被定义为点积乘以规范的乘积.
为了表示向量,我有一个大型float数组表,例如CREATE TABLE foo(vec float[])'.给定一个特定的float数组,我需要快速(使用索引,而不是seqscan)通过余弦相似性找到该表中最接近的数组,例如SELECT * FROM foo ORDER BY cos_sim(vec, ARRAY[1.0, 4.5, 2.2]) DESC LIMIT 10; 但我该怎么用?
pg_trgm余弦相似度的支持是不同的.它比较文本,我不确定它究竟是做什么的.称为smlar(此处)的扩展也对浮点数组具有余弦相似性支持,但是又做了不同的事情.我所描述的通常用于数据分析以比较文档的特征,所以我认为Postgres会支持它.
我在不同的时间向我的项目添加了一堆文件,然后删除了它们,我忘了让Xcode除了引用之外还要删除文件.由于Xcode不会将分组文件存储在不同的目录中,因此我现在在项目目录中共有数百个文件和文件夹,筛选并取出我不想要的文件和文件夹会很麻烦.
我正在使用Xcode 5.如何让它自动删除项目目录中实际上不属于项目的所有文件?注意:我不是指我的源代码中引用的文件,而是指Xcode项目本身.
我有想法使用内置的git功能来解决这个问题,方法是将项目推送到Github,删除本地副本,然后将其克隆回来.但显然,删除Xcode中的引用文件不会阻止它们被提交.如果有一些选项可以使Xcode只包含git存储库中的引用文件,那也可以工作(即使它是一个黑客的解决方法).
我有一个未知大小的字节缓冲区,我想创建一个指向缓冲区开头内存的本地struct变量.按照我在C中所做的,我在Rust中尝试了很多不同的东西并且不断出错.这是我最近的尝试:
use std::mem::{transmute, size_of};
#[repr(C, packed)]
struct my_struct {
foo: u16,
bar: u8,
}
fn main() {
let v: Vec<u8> = vec![1, 2, 3];
let buffer = v.as_slice();
let s: my_struct = unsafe { transmute(buffer[..size_of::<my_struct>()]) };
}
Run Code Online (Sandbox Code Playgroud)
我收到以下消息的错误:
std::marker::Sized没有实现[u8][u8]在编译时没有已知的常量std::mem::transmute有一些Objective-C库具有将整数枚举选项作为参数的函数,但是如果你想要默认选项,它们希望你传入0,这是典型的.但是在Swift中,这是不允许的,因为库指定了枚举类型.有没有什么方法可以在库中添加一个0枚举选项然后制作桥接代码以使其ObjC枚举在Swift中工作?
以下SDWebImageManager是iPhone应用程序中的示例:
SDWebImageManager.sharedManager().downloadWithURL(url, options: 0, progress: nil) { (image:UIImage!, error:NSError!, cacheType:SDImageCacheType, finished:Bool) -> Void in
// block code here
}
Run Code Online (Sandbox Code Playgroud)
Xcode会指出一个错误,options: 0因为它说'Int' is not convertible to SDWebImageOptions.我尝试了类似下面的内容,但是我得到了同样的错误:
let emptyOptions:SDWebImageOptions = 0
Run Code Online (Sandbox Code Playgroud) 我的 Unix 系统上有一个 Python3 进程一直在运行,我希望能够通过命名管道从其他偶尔运行的进程中随机向它发送数据。如果命名管道没有数据,我希望我的进程继续做其他事情,所以我需要检查它是否有数据而不阻塞。
我不知道如何在不打开它的情况下进行检查,但是除非我设置了非阻塞标志,否则无法打开块。如果我设置了标志,如果我在读取之前或期间碰巧写入管道,它就会崩溃。
这是我设法做到的最好的:
import os
fifo = "pipe_test.fifo"
done = False
fd = os.open(fifo, os.O_RDONLY | os.O_NONBLOCK)
while not done:
try:
s = os.read(fd, 1024) # buffer size may need tweaking
print(s)
done = True
except BlockingIOError as e:
pass
os.close(fd)
Run Code Online (Sandbox Code Playgroud)
如果管道中没有数据,我得到b"",然后退出。如果管道中有数据,它会得到一次异常,重试,然后获取数据。好像我做错了什么,可能会遇到奇怪的竞争条件。有没有更好的方法来做到这一点?
ios ×2
iphone ×2
objective-c ×2
swift ×2
bluetooth ×1
c ×1
delete-file ×1
enums ×1
gcc ×1
generics ×1
json ×1
linux ×1
macos ×1
named-pipes ×1
postgresql ×1
python ×1
reference ×1
rust ×1
sockets ×1
xcode ×1