小编Pet*_*rbo的帖子

Objective-C什么时候在@interface中声明什么方法

什么方法应该在@interface类的部分声明?据我所知,描述你的类所做的方法应在该@interface部分中声明,但不应声明其他"帮助"方法.这是我身边的正确理解吗?

iphone methods interface objective-c ios

7
推荐指数
2
解决办法
4728
查看次数

iOS - UIAppearance appearanceWhenContainedIn问题

我正在为我的导航栏设置图像,如下所示:

[[UINavigationBar appearance] setBackgroundImage:[UIImage imageNamed:@"navbar.png"] forBarMetrics:UIBarMetricsDefault];
Run Code Online (Sandbox Code Playgroud)

然后我不希望这个图像的类,MFMessageComposeViewController所以我通过这样做排除它:

[[UINavigationBar appearanceWhenContainedIn:[MFMessageComposeViewController class], nil] setBackgroundImage:nil forBarMetrics:UIBarMetricsDefault];
Run Code Online (Sandbox Code Playgroud)

但它没有任何效果(导航栏仍然使用我的图像进行样式设置MFMessageComposeViewController).我在这里错过了什么?

cocoa-touch ios uiappearance

7
推荐指数
1
解决办法
3284
查看次数

如何过滤NSDictionarys和NSDictionarys的数组?

我有一个数组,其中包含几个带有键的NSDictionaries:

  • NSString *name
  • NSString *ID
  • NSDictionary *phoneNumbersDict

现在我想过滤此数组以找到具有phoneNumbersDict@"keyIAmLookingFor"和值的数组@"valueIAmLookingFor".

NSMutableArray *addressBookPhoneIndividuals = [NSMutableArray array];
for (int i = 0; i < x; i++) {
    [addressBookPhoneIndividuals addObject:@{
        @"name" : @"...",
        @"ID" : @"...",
        @"phoneNumbers" : @{...}
    }];
}
Run Code Online (Sandbox Code Playgroud)

cocoa objective-c nsdictionary nspredicate

7
推荐指数
2
解决办法
2991
查看次数

如何在didFinishLaunchingWithOptions中测试UILocalNotification

我想测试应用程序退出时我的应用程序的行为,并且用户在通知中心点击通知,以便我的应用程序启动.在- didFinishLaunchingWithOptions你可以检查的关键UILocalNotification *notification = [launchOptions objectForKey:UIApplicationLaunchOptionsLocalNotificationKey];,但我怎么能调试吗?

如果我开始在Xcode中运行应用程序,那么我退出应用程序将失去与Xcode的连接.

debugging objective-c uilocalnotification

7
推荐指数
2
解决办法
1676
查看次数

在iOS 7上使用iOS 7之前的外观

如何在您的应用中使用iOS 7之前的外观?我刚刚升级到iOS 7,我手机上的一些应用程序仍在使用iOS 7之前的外观和感觉.例如,一个应用程序使用旧UIPickerView外观,但它在iOS 7上运行.

当我测试运行我在iOS 7模拟器上开发的应用程序时,它使用新的UIPickerView"自动"而不做任何更改.

所以我宁愿我的应用程序使用iOS 7之前的外观,直到我升级iOS 7的应用程序.

这是在iOS 7上运行Checkmark的图像,您可以清楚地看到它使用的是iOS 7前键盘:

在此输入图像描述

cocoa-touch objective-c ios ios6 ios7

7
推荐指数
1
解决办法
5000
查看次数

UICollectionView全屏放大UICollectionViewCell

如何放大UICollectionViewCell以便全屏显示?我已经扩展UICollectionViewFlowLayout并在我的视图控制器中,当一个单元被轻敲时我正在这样做:

CGPoint pointInCollectionView = [gesture locationInView:self.collectionView];
NSIndexPath *selectedIndexPath = [self.collectionView indexPathForItemAtPoint:pointInCollectionView];
UICollectionViewCell *selectedCell = [self.collectionView cellForItemAtIndexPath:selectedIndexPath];

NSLog(@"Selected cell %@", selectedIndexPath);
Run Code Online (Sandbox Code Playgroud)

不确定从哪里开始.应该UICollectionView负责显示放大的细胞吗?或者我应该创建一个新的视图控制器,以全屏显示单元格(图像)的内容?

zoom objective-c fullscreen ios uicollectionview

7
推荐指数
1
解决办法
7747
查看次数

Objective-C - 等待两个异步方法完成

我正在调用我想以同步顺序执行的四个方法,前两个方法是同步的,后两个方法是异步的(从URL获取数据).

伪代码:

- (void)syncData {

    // Show activity indicator
    [object sync]; // Synchronous method
    [object2 sync]; // Synchronous method
    BOOL object3Synced = [object3 sync]; // Async method
    BOOL object4Synced = [object4 sync]; // Async method
    // Wait for object3 and object4 has finished and then hide activity indicator
}
Run Code Online (Sandbox Code Playgroud)

我怎样才能做到这一点?

cocoa asynchronous objective-c wait ios

6
推荐指数
2
解决办法
8432
查看次数

Git-Flow撤消已完成的功能分支

如果要"撤消"功能分支,您有哪些选择?假设你添加了一个supercool-feature你完成的新功能(合并到开发并删除功能分支)然后它进入一个版本.但是你的用户真的不喜欢这个supercool-feature.如何撤消/回退/反转已合并到开发和发布中的此功能?

我正在使用SourceTree进行版本控制.

git git-flow

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

Firebase 类 FIRAAppEnvironmentUtil 在使用 Cocoapods 时在两者中实现

我正在尝试在动态框架(Cocoa Touch Framework)中使用 Firebase。我已将 Firebase 添加到 Podfile 中,如下所示:

platform :ios, '9.0'
use_frameworks!

workspace 'Test.xcworkspace'

target 'Test' do
  project 'Test.xcodeproj'
end

target 'TestFramework' do
  project 'TestFramework/TestFramework.xcodeproj'

  # Pods for TestFramework
  pod 'Firebase/Database'
  pod 'Firebase/Auth'

end
Run Code Online (Sandbox Code Playgroud)

我在测试目标的构建阶段设置了目标依赖项。所有根据:https : //github.com/benasher44/CocoaPodsLibExample

但是,当我在应用程序启动期间从我的测试目标引用我的 TestFramework 时,我在控制台中收到此消息(对于所有 Firebase 类):

objc[34978]:FIRAAppEnvironmentUtil 类在 /Users/peterwarbo/Library/Developer/Xcode/DerivedData/Test-goxvmnklbfyswhdniydzbvzudcez/Build/Products/Debug-iphonesimulator/TestFramework.framework/Test8Framework/05/Users/Test858585/Userspet 中实现Library/Developer/CoreSimulator/Devices/43080C45-C9E9-4237-A255-5029CC4D5797/data/Containers/Bundle/Application/FCFDC439-8564-40A8-9B34-935FE222193E/Test.302193E/Test.021app33 将使用两者之一。哪个是不确定的。

并且应用程序崩溃。我读过这可能与 Firebase 是一个静态库有关。我需要解决这个问题,以便我可以使用来自不同目标的 Firebase。具体来说,我想要实现的是能够从键盘扩展程序执行 Firebase 操作,因此我的主机应用程序和我的扩展程序都应该能够执行 Firebase 操作。

我已经尝试解决这个问题一个多星期了,但我还没有想出任何可行的解决方案:(

我使用的是 Xcode 8.2.1,Cocoapods 1.2.0

xcode frameworks ios cocoapods firebase

6
推荐指数
0
解决办法
774
查看次数

在 iOS 16 中设置新的文本字段焦点时,文本字段被忽略

我在 Xcode 14 beta 中遇到一个问题,正如您在下面的图像中看到的那样,输入一些文本后键盘会消失,而在 iOS 15 中键盘保持在原位,这是我想要的行为。

我正在做的是.onSubmit创建一个新项目并以编程方式设置它的焦点。

iOS 15(Xcode 13.4.1)

iOS 15

iOS 16(Xcode 14 测试版 3)

iOS 16

再次:

enum Focusable: Hashable {
    case none
    case row(id: UUID)
}

extension View {

    func sync<T: Equatable>(_ field1: Binding<T>, _ field2: FocusState<T>.Binding ) -> some View {
        self
            .onChange(of: field1.wrappedValue) {
                field2.wrappedValue = $0
            }
            .onChange(of: field2.wrappedValue) {
                field1.wrappedValue = $0
            }
    }
}

class Store: ObservableObject {
    
    struct Item: Identifiable {
        var id = UUID()
        var name: String
    }
    
    @Published …
Run Code Online (Sandbox Code Playgroud)

keyboard textfield swiftui ios16

6
推荐指数
0
解决办法
1043
查看次数