小编Mik*_*ers的帖子

如何从我的应用程序中打开"设置"应用程序?

在我正在处理的iPhone应用程序中,用户需要通过设置应用程序输入一些配置,然后我的应用程序才能连接到服务器并运行.现在,当用户首次启动我的应用程序时,我会显示一条警告,说明用户应该进入设置,输入配置详细信息然后重新启动,但这并不理想.

不幸的是,我无法为此应用程序提供合理的默认值,服务器主机名,用户帐户等因用户而异.我认为我能希望的最好的方法是显示一条警报,说明某些配置需要通过设置输入,并提供一个"带我去那里......"按钮,它将打开设置,然后在我的应用程序的设置中打开该部分.如果那是不可能的,打开设置总比没有好.

我依旧记得iPhone越狱的人已经找到了通过地址簿中有趣的URL或电话号码启动设置或其他应用程序的方法,但我没有在Google中找到任何有关它的信息.

:(

iphone cocoa-touch

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

xcode 4.5上的符号崩溃失败

我刚刚将我的xcode升级到4.5版本,我尝试了三种方式来表示崩溃日志,但它们都没有成功.

首先,我从设备上获取了崩溃日志,然后将其导入到Organizer的"设备日志"中,但是我的应用程序的确切功能无法显示,内存地址仍显示在结果中.

其次,我将'symbolAppcrash'文件从'/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/Library/PrivateFrameworks/DTDeviceKit.framework/Versions/A/Resources'复制到'/ usr/local/bin'并将.DSYM文件,.app文件和.crash文件放入文件夹,运行命令:'symbolicatecrash Myapp.crash',结果仍显示内存地址.

最后,我尝试了http://xperienced.com.pl/blog/symbolicate-ios-crash-report的方法,但仍然没有运气.

能帮助我解决这个问题吗?

提前致谢!

xcode symbolicatecrash ios

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

Apple的Objective-C运行时如何在不降低性能的情况下进行多线程引用计数?

所以我正在阅读这篇文章,试图从Python解释器中删除全局解释器锁(GIL)以提高多线程性能并看到一些有趣的东西.

事实证明,删除GIL实际上使事情变得更糟的地方之一是内存管理:

使用自由线程,引用计数操作会失去线程安全性.因此,补丁引入了全局引用计数互斥锁以及用于更新计数的原子操作.在Unix上,使用标准的pthread_mutex_t锁(包含在PyMutex结构中)和以下函数实现锁定......

...在Unix上,必须强调的是,简单的引用计数操作已经被不少于三个函数调用替换,加上实际锁定的开销.它的价格要贵得多......

...显然细粒度的引用计数锁定是性能不佳的主要原因,但即使你取消锁定,引用计数性能仍然对任何类型的额外开销(例如,函数调用等)非常敏感. ).在这种情况下,性能仍然是使用GIL的Python的两倍.

然后:

引用计数是一种用于自由线程的非常糟糕的内存管理技术.这已经广为人知,但性能数据更加具体.对于任何尝试使用GIL删除补丁的人来说,这肯定是最具挑战性的问题.

所以问题是,如果引用计数对于线程来说太糟糕了,Objective-C如何做呢?我编写了多线程的Objective-C应用程序,并没有注意到内存管理的大量开销.他们在做别的吗?像某种每个对象锁而不是全局锁?Objective-C的引用计数在线程上实际上在技术上是不安全的吗?我不是一个真正推测的并发专家,但我有兴趣知道.

performance multithreading memory-management reference-counting objective-c

9
推荐指数
2
解决办法
1228
查看次数

如何检测音频左/右平衡?

我试图以编程方式检测音频左/右平衡,并且似乎没有获取此设置值的API.我能够找到UIAccessibilityIsMonoAudioEnabled()检测用户是否已启用单声道音频的方法,但我找不到音频平衡的等效功能.

谁知道我怎么做到这一点?

PS转到设置 - >常规 - >辅助功能,然后向下滚动到"听力"以设置这些选项

iphone audio ios

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

在swift中使用CGFloats进行数学运算的最佳方法是什么?

我尝试在swift中做一些简单的UIView布局数学,并尝试了以下代码行...

var offset: CGFloat = (bounds.width / 2.0) - ((sortedSymptoms.count * bounds.height) / 2.0)
Run Code Online (Sandbox Code Playgroud)

并从编译器得到以下错误:

cannot invoke '-' with an argument list of type '(($T6), ($T17))'
        var offset: CGFloat = (bounds.width / 2.0) - ((sortedSymptoms.count * bounds.height) / 2.0)
                              ~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~    
Run Code Online (Sandbox Code Playgroud)

编译器错误并没有那么有用,但看起来在某种类型的Double,Int和CGFloat之间存在类型冲突.我能够通过在CGFloats的一些明确创作中进行编译来获得编译,但我无法相信这是正确的方法.

var offset: CGFloat = (bounds.width / CGFloat(2.0)) - ((CGFloat(sortedSymptoms.count) * bounds.height) / CGFloat(2.0))
Run Code Online (Sandbox Code Playgroud)

什么是正确的方法?

math core-graphics uikit cgfloat swift

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

您如何通过iOS SDK确定设备是否位于中国强大的防火墙后面?

由于当用户位于大型防火墙后面时,可靠地到达我们在中国境外托管的正常端点的问题,我们正在寻找一种方法来可靠地确定用户当前是否位于大型防火墙之后,并使用托管在内部的一组不同的端点URL中国。

我们想要做的是客户端可以进行的某种检查,例如访问我们知道永远永远被防火墙阻止(或只能从内部访问的)URL或检查网络配置的某些属性。

目前正在考虑的事情:

  1. 根据分配给中国的网块列表检查设备的IP
    • 如果设备位于NAT防火墙后,则无法使用
  2. 从设备到已知在中国之外的主机进行跟踪路由。如果数据包正在通过位于中国的主机路由(请参见上文),则设备必须在中国。
    • 可能会起作用,但会导致延迟,导致应用无法同时拨打电话。
  3. 只是问用户
    • 最坏的情况是,这可能是最佳选择。

networking firewall ios great-firewall-of-china

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

哪种方法名称最适合Objective-C/Cocoa约定?

这是一个快速的问题.哪个方法名称对Objective-C Cocoa应用程序最有意义?

-(void) doSomethingWithAnimation:(BOOL)animated
Run Code Online (Sandbox Code Playgroud)

要么:

-(void) doSomething:(BOOL)animated
Run Code Online (Sandbox Code Playgroud)

甚至:

-(void) doSomethingAnimated:(BOOL)animated
Run Code Online (Sandbox Code Playgroud)

cocoa cocoa-touch objective-c naming-conventions

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

是否有使用NSLayoutConstraint的可视化格式的实例变量的最佳实践?

假设我有一个名为label的超类的实例变量,我想使用可视格式设置自动布局约束.如果我尝试在格式字符串中使用self.label,我会得到解析错误,并且我无法从子类访问_label.目前正在使用的解决方法如下,但它看起来有点难看.有没有更好的办法?

    UILabel *label = self.label;
    NSDictionary *views = NSDictionaryOfVariableBindings(label, _textField);

    [self.contentView addConstraints:
     [NSLayoutConstraint constraintsWithVisualFormat:@"H:|-[label(==_textField)][_textField(==label)]-|"
                                             options:NSLayoutFormatAlignAllCenterY
                                             metrics:nil
                                               views:views]];
Run Code Online (Sandbox Code Playgroud)

layout cocoa cocoa-touch ios autolayout

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

将应用置于后台并在Appium iOS中重新启动的任何方法

在使用Appium的iOS自动化中,有什么方法可以执行以下过程?

  1. 按下主页按钮。
  2. 将应用程序置于后台。
  3. 打开其他应用程序(例如Gmail)->在此进行操作。
  4. 然后重新启动我们的应用程序并继续方法检查。

我尝试了这些:

RemoteWebDriver wd = null;
wd.close();
Run Code Online (Sandbox Code Playgroud)

但是它只是退出了wd.quit()我正在自动化的应用程序(就像一样),然后当我尝试重新启动时->从头开始。我正在iPhone模拟器上运行它。

iphone automation ios appium

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

如何确定Android UI元素的XPATH.Selenium + Appium

我目前正致力于使用Appium和Selenium自动化Android应用程序,并且遇到了通过ID定位元素的一些问题.我想使用XPATH但不知道如何获得Android UI元素的XPATH.有谁知道如何确定元素的XPATH或知道可以快速完成这项工作的工具?谢谢!

xpath automation android selenium-webdriver appium

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