小编Jig*_*adu的帖子

Swift中数组的通用扩展

坦率地说,我是学习扩展创建和使用的新手.

我想创建一个类别(在swift 3.0中扩展),可以在整个应用程序中使用它来执行Array的重复操作.

示例链接1

这是我在研究时所看到和理解的,我想创建一个扩展,其中包含各种方法,这些方法应该是通用的,而不是基于创建单独扩展所需的数据类型.

在上面的示例中,如果我们将使用特定的数据类型明智扩展,我们将需要创建单个扩展.如果有任何方法可以创建泛型类别(在swift中扩展),我想要一个指导.

  1. extension _ArrayType where Generator.Element == Int
  2. extension Array where Element: Equatable
  3. extension Array where Element == Int
  4. extension _ArrayType where Generator.Element == Float
  5. extension SequenceType where Self.Generator.Element: FloatingPointType
  6. extension Array where Element: DoubleValue
  7. extension Sequence where Iterator.Element == String

,等等...

示例链接2

注意:简而言之,我们可以考虑在单个扩展中执行基于Array的操作,而不是按照上述要求为每个数据类型创建单个扩展.

swift swift-extensions

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

UINavigationController popToViewController问题

我正在使用UINavigationController来处理控制器导航

在正常情况下

RegistrationView - > LoginView - > HomeView

从HomeView和任何其他下一个控制器,有一个名为Setting的屏幕打开,它有一个Logout Button.点击此按钮屏幕将在正常情况下弹出到LoginView.

- (IBAction)btnLogoutSelected:(id)sender
{
    NSArray *navArr=self.navigationController.viewControllers;
    for (UIViewController *nav in navArr)
    {
        if ([nav isKindOfClass:[LoginViewController class]])
        {
            [self.navigationController popToViewController:nav animated:YES];
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

一旦用户将被注册并且如果用户登录一次,此处应用程序具有autoLogin功能.所以当时LoginView不会在导航计数中.所以在这种情况下上面的代码不起作用.所以当时我无法进入LoginView.我需要帮助来解决这个问题.提前致谢

uinavigationcontroller ios

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

从相机拍摄图像时闪烁闪光灯

我正在使用AVCapture框架工作来设置从相机拍照时闪烁的闪光灯.在这种方法中,我得到闪光灯闪烁效果几秒钟,但随后它崩溃了.

以下是我所做的代码.

-(IBAction) a
{
    _picker = [[UIImagePickerController alloc] init];
    _picker.sourceType = UIImagePickerControllerSourceTypeCamera;
    _picker.cameraCaptureMode = UIImagePickerControllerCameraCaptureModePhoto;
    _picker.cameraDevice = UIImagePickerControllerCameraDeviceRear;
    _picker.showsCameraControls = YES;
    _picker.navigationBarHidden =YES;
    _picker.toolbarHidden = YES;
    _picker.wantsFullScreenLayout = YES;

    [_picker takePicture];

    // Insert the overlay
    OverlayViewController *overlay = [[OverlayViewController alloc] initWithNibName:@"OverlayViewController" bundle:nil];
    overlay.pickerReference = _picker;
    _picker.cameraOverlayView = overlay.view;
    _picker.delegate = (id)self;

    [NSTimer scheduledTimerWithTimeInterval:0.1 target:self selector:@selector(flashLight_On_Off) userInfo:nil repeats:YES];

    [self presentModalViewController:_picker animated:NO];
}

- (void)flashLight_On_Off
{
    NSArray *devices = [AVCaptureDevice devicesWithMediaType:AVMediaTypeVideo];
    for (AVCaptureDevice *device in devices)
    {
        if ([device hasFlash] == …
Run Code Online (Sandbox Code Playgroud)

iphone ipad

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

检索数据时的数据库崩溃问题

在此输入图像描述 这是数据库字段值.

下面是我申请从sqlite数据库获取数据的代码

-(void)readDataFromRestaurantTable
{
    [self openDataBase];

    const char *dbpath = [databasePath UTF8String];

    if (sqlite3_open(dbpath, & database) == SQLITE_OK)
    {
        sqlite3_stmt  *statement = NULL;

        NSString *querySQL = [NSString stringWithFormat: @"SELECT * FROM RestaurantDB"];
        const char *query_stmt = [querySQL UTF8String];

        if (sqlite3_prepare_v2(database, query_stmt, -1, &statement, NULL) == SQLITE_OK) {

            while (sqlite3_step(statement) == SQLITE_ROW)
            {
                strRestaurantName = [[NSString alloc] initWithUTF8String:(const char *) sqlite3_column_text(statement, 1)];
                strRestaurantAddress = [[NSString alloc] initWithUTF8String:(const char *) sqlite3_column_text(statement, 2)];
                strRestaurantPhone = [[NSString alloc] initWithUTF8String:(const char *) sqlite3_column_text(statement, 3)];
                strRestaurantLatitude …
Run Code Online (Sandbox Code Playgroud)

sqlite iphone

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