坦率地说,我是学习扩展创建和使用的新手.
我想创建一个类别(在swift 3.0中扩展),可以在整个应用程序中使用它来执行Array的重复操作.
这是我在研究时所看到和理解的,我想创建一个扩展,其中包含各种方法,这些方法应该是通用的,而不是基于创建单独扩展所需的数据类型.
在上面的示例中,如果我们将使用特定的数据类型明智扩展,我们将需要创建单个扩展.如果有任何方法可以创建泛型类别(在swift中扩展),我想要一个指导.
extension _ArrayType where Generator.Element == Intextension Array where Element: Equatableextension Array where Element == Intextension _ArrayType where Generator.Element == Floatextension SequenceType where Self.Generator.Element: FloatingPointTypeextension Array where Element: DoubleValueextension Sequence where Iterator.Element == String,等等...
注意:简而言之,我们可以考虑在单个扩展中执行基于Array的操作,而不是按照上述要求为每个数据类型创建单个扩展.
我正在使用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.我需要帮助来解决这个问题.提前致谢
我正在使用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)
这是数据库字段值.
下面是我申请从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)