小编Lud*_*dry的帖子

在iOS中获取手机信息塔信息(CoreTelephony?)

我需要获得有关最近的手机信号塔(类似于手机信号)的信息.例如,通过列出可能的单元格来识别不耗电的地方.

我查看了coretelephony框架,但没有看到任何关于蜂窝塔的信息.有没有其他方式来访问它?或者这只能通过私有API调用吗?

iphone sdk ios core-telephony

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

有没有办法指定运行循环和模式以从发布者接收元素

我可以将调度程序指定为RunLoop.main,但我找不到提供关联RunLoop.Mode模式以从发布者接收元素的本机方式。

为什么我需要这个:我正在更新我的发布者的 tableView 单元格,但如果用户正在滚动,UI 不会更新,然后在用户交互或滚动停止后立即更新。这是滚动视图的已知行为,但我希望我的内容尽快显示,并且能够指定运行循环跟踪模式可以解决此问题。

组合 API:我认为该receive(on:options:)方法没有任何匹配选项来提供此功能。我认为在内部,如果我打电话,receive(on:RunLoop.main)那么RunLoop.main.perform { }就会被调用。此执行方法可以将模式作为参数,但这不会暴露给组合 API。


当前想法:为了解决这个问题,我可以自己执行执行操作而不使用组合 API,所以不要这样做:

cancellable = stringFuture.receive(on: RunLoop.main) // I cannot specify the mode here
                          .sink { string in
    cell.textLabel.text = string
}
Run Code Online (Sandbox Code Playgroud)

我可以这样做:

cancellable = stringFuture.sink { string in
    RunLoop.main.perform(inModes: [RunLoop.Mode.common]) { // I can specify it here
        cell.textLabel.text = string
    }
}
Run Code Online (Sandbox Code Playgroud)

但这并不理想。

理想的解决方案:我想知道如何将其包装到我自己的发布者函数实现中以具有如下内容:

cancellable = stringFuture.receive(on: RunLoop.main, inMode: RunLoop.Mode.common) …
Run Code Online (Sandbox Code Playgroud)

uikit runloop swift combine

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

iPhone检查和更新文件

我想知道如何使用ASIHTTP检查和更新我的iPhone文件

到目前为止我有:

__block BOOL complete = NO;
__block BOOL failed = NO;
/* doing the actual check. replace your existing code with this. */
NSURL *url = [NSURL URLWithString:@"http://notasdasd.com/file.txt"];
ASIHTTPRequest *request = [[ASIHTTPRequest alloc] initWithURL:url];
[request setDownloadCache:[ASIDownloadCache sharedCache]];
[request setCachePolicy:ASIAskServerIfModifiedCachePolicy|ASIFallbackToCacheIfLoadFailsCachePolicy];
[request setCompletionBlock:^{complete = YES;}];
[request setFailedBlock:^{failed = YES;}];
[request startSynchronous];
NSString *latestText = [request responseString];
Run Code Online (Sandbox Code Playgroud)

我想检查缓存目录中的旧版本,并将最后修改的标题与缓存目录中文件的修改日期进行比较,然后替换.

iphone asihttprequest ios

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

Xcode命令行工具(XCode 4.6)从终端运行单元测试

经过多次尝试,我没有想到如何通过终端运行工作区内的项目进行单元测试.我试图创建一个新的Scheme并运行该脚本,该脚本构建但不运行任何测试:

export DEVELOPER_DIR=/Applications/Xcode.app/Contents/Developer/
xcodebuild -workspace MyProject.xcworkspace\ 
           -scheme MyProjectLogicTests\
           -sdk iphonesimulator\ 
           -configuration Debug\ 
           ONLY_ACTIVE_ARCH=NO\ 
           TEST_AFTER_BUILD=YES\ 
           RUN_APPLICATION_TESTS_WITH_IOS_SIM=YES\ 
           clean build
Run Code Online (Sandbox Code Playgroud)

terminal command-line jenkins xcode4.6

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

手动更改$(AppIdentifierPrefix)属性?

我在Apple商店上传了应用程序.现在我正在开发更新版本.但是,在处理现有项目时,我创建了具有不同名称的新项目.当我完成后,我更改了名称和包标识符以匹配现有的应用程序.

我尝试上传应用程序以测试航班,但我收到了错误

"Invalid IPA: The keychain-access-group in the embedded.mobileprovision and your binary don't match."
Run Code Online (Sandbox Code Playgroud)

所以我开始浏览网络以获得答案......我所提出的是启用权利.我做了,但无济于事......然后我编辑了权利,改变了这个:

$(AppIdentifierPrefix)com.xxxx
Run Code Online (Sandbox Code Playgroud)

对此:

12HJ2312.com.xxxx (the number is number of prefix from developer portal)
Run Code Online (Sandbox Code Playgroud)

它工作,我可以上传.世界再次变得美好.或者是吗?我仍然不明白为什么我要改变它.从哪里来

$(AppIdentifierPrefix)
Run Code Online (Sandbox Code Playgroud)

是红色的?我认为钥匙串是红色的,但似乎没有,因为钥匙串是我输入的相同值.那么我怎么能看到这个价值,它在哪里画出它的内容呢?

keychain uniqueidentifier ios

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

UICollectionView项目顺序不能从右到左语言反转

我注意到一个很大的问题,在从右到左的语言中,单元格顺序没有正确反转,只有对齐是正确的.但仅适用于水平流布局,如果集合视图包含不同的单元格大小!是的,我知道这听起来很疯狂.如果所有单元格大小相同,则排序和对齐方式都很好!

以下是我到目前为止使用示例应用程序(隔离以确保这是实际问题,而不是其他内容):

(第一个柱应始终绘制为蓝色,然后使用索引增加尺寸.) 在此输入图像描述

这是UICollectionViewFlowLayout(在iOS 11上)的内部错误吗?或者有什么明显的东西我不见了?

这是我的测试代码(Nothing fancy + XIB with UICollectionView):

public func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int {
    return 6
}

public func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {
    let cell = collectionView.dequeueReusableCell(withReuseIdentifier: "test", for: indexPath)
    cell.backgroundColor = (indexPath.item == 0) ? UIColor.blue : UIColor.red
    return cell
}

public func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAt indexPath: IndexPath) -> CGSize {
    return CGSize(width: (10 * indexPath.item) + …
Run Code Online (Sandbox Code Playgroud)

right-to-left ios uicollectionview ios11 uicollectionviewflowlayout

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

有没有办法使用 SwiftUI 将选项绑定到切换/滑块

我的数据模型中有一个UInt?(可选)属性,我试图将其绑定到ToggleSliderSwiftUI。我正在尝试实现这样的目标:

  • maximumRingsShownCount值为 4(不是 nil),那么开关应该打开并且该值绑定到滑块。
  • maximumExpandedRingsShownCount值为 nil,则切换应关闭并且不显示滑块。

使用 SwiftUI 渲染的切换和滑块

我在这里面临两个问题:

  1. 看起来我们不能有可选的绑定(对于滑块)
  2. 是否可以有一个转换器将可选值转换为布尔值(用于切换)?

到目前为止,在我看来,除了我的模型之外,我还声明了 2 个属性:

@ObjectBinding var configuration: SunburstConfiguration

@State private var haveMaximumRingsShownCount: Bool = false
@State private var haveMaximumExpandedRingsShownCount: Bool = false
Run Code Online (Sandbox Code Playgroud)

我的视图正文包含(对于每个属性):

Toggle(isOn: $haveMaximumRingsShownCount) {
    Text("maximumRingsShownCount")
}
if haveMaximumRingsShownCount {
    VStack(alignment: .leading) {
        Text("maximumRingsShownCount = \(config.maximumRingsShownCount!)")
            Slider(value: .constant(4 /* no binding here :( */ ))
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

UI 布局是正确的,但我仍然遇到上述问题,因为:

  1. 状态haveMaximumRingsShownCount不受我的config.maximumRingsShownCount模型是否为零的约束
  2. 滑块当前仅显示一个常量,未绑定到展开的config.maximumRingsShownCount属性

关于如何使用选项解决这些问题有什么想法吗? …

iphone user-interface ios swift swiftui

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

如何将UISplitViewController添加到UINavigationController?

在我的申请中.我必须使用UISplitViewController,我想添加UISplitViewControllerTo UINavigationController但我不能这样做.

我也知道继承UISplitViewController是不可能的.但加入对我来说非常重要UINavigationController.

提前致谢 :)

iphone xcode objective-c ios

2
推荐指数
1
解决办法
3228
查看次数