gpt4 book ai didi

iPhone 程序在模拟器上运行但不在 iPhone 上运行

转载 作者:行者123 更新时间:2023-11-29 13:49:36 25 4
gpt4 key购买 nike

我正在使用 NSURLconnection 连接到网络服务并接收数据。由于我连接到不同的网络服务,我将连接 accessibilityLabel 设置为描述网络服务的字符串。

在委托(delegate)方法中

-(void) connectionDidFinishLoading:(NSURLConnection *) connection;

我检查 connection.accessibilityLabel 并运行适当的代码。

这在模拟器中完美运行。

但是,在 iPhone 本身上,connection.accessibilityLabel 始终为 null。

有人知道为什么吗?

(连接仍然正常工作,我在 iPhone 上获取我的数据,我只是不知道如何处理它,因为辅助功能标签似乎没有正确设置或被删除或其他东西。)

提前致谢。

编辑:这是我用来建立连接和分配标签的代码

// create the connection with the request
// and start loading the data
ConnectionDelegate *connDel = [[ConnectionDelegate alloc] init];
connDel.delegate = self;
conn = [[NSURLConnection alloc] initWithRequest:theRequest delegate:connDel];
conn.accessibilityLabel = label;

if (conn) {
// Create the NSMutableData to hold the received data.
// receivedData is an instance variable declared elsewhere
connDel.webData = [[NSMutableData data] retain];
} else {
// Inform the user that the connection failed.
NSLog(@"Connection Failed");
}

最佳答案

不确定为什么您的 accessibilityLabel 只能在模拟器上工作,但是可以在这个问题的已接受答案中找到更具扩展性的方法:Managing multiple asynchronous NSURLConnection connections

基本上,您可以创建一个可变的 CFDictionary,将您的连接作为键,将任何您想要的作为值(在链接的答案中,他使用 receivedData 对象,但您可以使用任何您想要的)。

因此,要根据您的情况调整他的解决方案,您可以这样做:

在创建请求之前:

connectionToInfoMapping =
CFDictionaryCreateMutable(
kCFAllocatorDefault,
0,
&kCFTypeDictionaryKeyCallBacks,
&kCFTypeDictionaryValueCallBacks);

创建每个连接后:

CFDictionaryAddValue(
connectionToInfoMapping,
connection,
[NSMutableDictionary
dictionaryWithObject:@"someName"
forKey:@"connectionName"]);

然后在您的 connectionDidFinishLoading: 方法中:

-(void) connectionDidFinishLoading:(NSURLConnection *) connection
{
NSMutableDictionary *connectionInfo = CFDictionaryGetValue(connectionToInfoMapping, connection);
NSString *connectionName = (NSString *)[connectionInfo objectForKey:@"connectionName"];
if ([connectionName isEqualToString:@"connectionA"]) {
//Do something
}
}

上面的内容可以很容易地扩展为通过连接映射多个属性(只需将更多的键和值添加到您添加到 CFDictionary 的 NSMutableDictionary)。

关于iPhone 程序在模拟器上运行但不在 iPhone 上运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5581584/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com