小编Eya*_*yal的帖子

开发客户端 - 服务器iphone应用程序

如果我想开发一个客户端 - 服务器设计的iPhone应用程序(iPhone设备作为客户端和ac#服务器),有两个问题:

  1. 是否可以使用我自己的笔记本电脑来运行服务器?如果没有,我的选择是什么?
  2. 我是否必须开发自己的传输消息协议?

因此,如果我理解正确的,从客户端向服务器发送诸如"创建新用户"之类的消息的过程如下:1.客户端将创建包含命令"CREATE NEW USER"的JSON/XML和新用户详细信息.2.客户端将通过HTTP请求(作为HTTP请求的主体)发送此JSON/XML,其URL在服务器端映射到ac#方法.3.这将在服务器上触发相应的方法,并在数据库上创建新用户.4.服务器将创建包含重播"CREATED"的JSON/XML,并将通过HTTP响应(作为HTTP响应的主体)将其发送到客户端.那是对的吗?

c# iphone networking cocoa-touch objective-c

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

在消息传递应用程序中使用APN

我正在开发一个消息传递应用程序(类似于WhatsApp),我在实现它的主要功能方面遇到了两难 - 从client1向client2发送消息.

问题是我使用的是集中式服务器设计,客户端使用NSURLConnection向服务器发送消息,服务器不保留和管理打开的套接字,也无法为其中一个客户端发送消息,因此客户端有一个计时器并每隔2秒查询服务器以查看是否有新消息正在等待它们.

这种方法的问题是每2秒查询一次服务器似乎会非常快地杀死电池,所以我想也许不是客户端查询服务器,使用APNS所以当client1向服务器发送消息时,服务器将发送一个将通知推送到client2,然后client2将从服务器获取数据.

这种方法是否适用于需要大量推送通知用途的大型消息应用程序?

messaging chat objective-c instant-messaging apple-push-notifications

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

是否可以在iPhone上发送"静音"推送通知(不向用户发出任何警报)?

我需要在聊天应用程序上执行此操作,以通知客户端有从服务器获取的新数据.

我知道技术上可以使用空载荷(至少在ios 5设备上工作),但Apple可以将其视为滥用服务还是可以这样做?

在ios 4设备上技术上是否可行?

iphone objective-c apple-push-notifications

5
推荐指数
2
解决办法
4828
查看次数

objective c - 带圆角的UINavigationBar

我想让我的导航栏成为带圆角的导航栏(左上角和右上角)

我发现这个代码可以实现:

CALayer *capa = [self.navigationController navigationBar].layer;
[capa setShadowColor: [[UIColor blackColor] CGColor]];
[capa setShadowOpacity:0.85f];
[capa setShadowOffset: CGSizeMake(0.0f, 1.5f)];
[capa setShadowRadius:2.0f];  
[capa setShouldRasterize:YES];


//Round
CGRect bounds = capa.bounds;
bounds.size.height += 10.0f;    //I'm reserving enough room for the shadow
UIBezierPath *maskPath = [UIBezierPath bezierPathWithRoundedRect:bounds 
                                               byRoundingCorners:(UIRectCornerTopLeft | UIRectCornerTopRight)
                                                     cornerRadii:CGSizeMake(10.0, 10.0)];

CAShapeLayer *maskLayer = [CAShapeLayer layer];
maskLayer.frame = bounds;
maskLayer.path = maskPath.CGPath;

[capa addSublayer:maskLayer];
capa.mask = maskLayer;
Run Code Online (Sandbox Code Playgroud)

但是它有一个问题,现在nab条没有角边,它在角落里是透明的,我可以看到它后面的视图.
我不希望它透明,我想在那里放一些黑色.
有谁知道怎么做?

objective-c uinavigationbar uinavigationcontroller cglayer

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

objective c - 创建一个NSManagedObject和从同一父类继承的常规NSObject类

在我的iPhone应用程序中,我有两个viewControllers:viewController1有一个tableView,它显示了Item1对象的列表viewController2有一个tableView,它显示了Item2对象的列表

其中Item1类和Item2类继承自抽象类ParentItem.

现在我想让Item2对象成为NSManagedObject,这样我就可以将它保存在设备上,并使viewController2使用NSFetchedResultsController来加载带有Item2对象的tableView.

但我不希望Item1成为NSManagedObject,我想将它用作常规对象.

问题是,如果我创建ParentItem类作为NSManagedObject,那么Item1类也将是一个NSManagedObject,我不能将它用作常规对象(我的意思是我不能用常规的alloc-init创建一个Item1对象,或者可以一世???)

如果我创建ParentItem类作为常规NSObject,那么Item2类也将是常规NSObject.

inheritance core-data objective-c nsmanagedobject

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

如何在iPhone应用程序上仅支持纵向模式

我正在开发的iPhone应用程序中有一个奇怪的问题.我希望我的应用程序支持纵向模式,但由于某种原因我无法做到(设备和模拟器).

为了仅支持肖像模式我做了如下:

  • 在Xcode的TARGET摘要部分,我只选择了肖像.
  • 我的所有ViewControllers都实现了 shouldAutorotateToInterfaceOrientation

但正如我所说它不起作用,奇怪的结果是该应用程序支持所有方向(纵向,颠倒,左侧景观,右侧景观).
有任何想法吗?

这是我如何实现的 shouldAutorotateToInterfaceOrientation

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
     // Return YES for supported orientations
     NSLog(@"Checking orientation %d", interfaceOrientation);
     return (interfaceOrientation == UIInterfaceOrientationPortrait);
}
Run Code Online (Sandbox Code Playgroud)

我刚刚注意到,当我旋转手机时,我收到以下消息:

"不推荐使用两阶段旋转动画.此应用程序应使用更平滑的单级动画."

这是什么意思?

iphone xcode objective-c autorotate device-orientation

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

目标c - 在drawRect中绘制带圆角的图像

我有一个UITableViewCell带有UIImageas属性的子类.
我想在drawRect中绘制图像,并且效率很高,因为这是一个表视图单元格.

我知道如何绘制图像:

-(void)drawRect:(CGRect)aRect 
{
    CGRect rect = self.bounds;

    [self.image drawInRect:rect];
} 
Run Code Online (Sandbox Code Playgroud)

但是,如何绘制圆角图像并保持高效?

顺便说一句我不想使用UIImageView,然后设置图层角半径,因为它接缝会伤害性能.

objective-c rounded-corners uitableview uiimage drawrect

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

在特定位置截断UILabel

我使用表格视图来显示书籍列表,其中每个单元格都有一个UILabel显示书籍名称,另一个UILabel显示书籍的作者

我的问题是关于作者的标签.一本书可以有多个作者,我希望它的行为如下:

  • 如果书中有一位作者('John Colman')的标签应为:"John Colman"
  • 如果书中有多个作者('John Colman','Bob Night','Michael')标签应为:"John Colman +2 authors"

现在的问题是这个,我希望标签在'+'之前被截断.因此,例如,如果第一个作者名称很长,让我们说'Benjamin Walter Jackson',我希望标签看起来像这样:

"Benjamin Walter Ja... +2 authors"
Run Code Online (Sandbox Code Playgroud)

默认行为当然会截断最后的标签,所以它看起来像这样:

"Benjamin Walter Jackson +2 au..."  
Run Code Online (Sandbox Code Playgroud)

如果我使用中间截断,则无法保证它会在正确的位置截断标签(在'+'之前)

我正在寻找一种尽可能高效的方法,而不会影响表格视图的滚动性能.

objective-c uilabel ios

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

iOS Universal Links有时会停止工作

我的应用程序支持通用链接,在大多数情况下,它可以正常工作,点击链接可以打开应用程序.

但有时候,我不确定为什么,它会停止工作.

它发生了几次给一个用户,点击链接停止打开应用程序,而是打开网络.
从那一刻起,你无能为力,让它再次发挥作用.

我知道如果你点击状态栏右上角的链接,它会禁用通用链接,从那一刻开始点击链接就会打开网页.要重新启用通用链接,您可以点击Notes App上的链接(例如),然后点击"在MyApp中打开"按钮.

但这似乎并非如此,用户告诉我他没有按状态栏上的链接,更奇怪的是,当试图通过点击Notes App中的链接重新启用通用链接时,"打开" MyApp"按钮丢失了.

什么可能导致这个问题?

deep-linking ios ios-universal-links

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

iPhone快照包括键盘

我正在寻找适当的方式来拍摄整个iPhone屏幕,包括键盘.

我找到了一些快照屏幕的代码:

CGRect screenCaptureRect = [UIScreen mainScreen].bounds;
UIView *viewWhereYouWantToScreenCapture = [[UIApplication sharedApplication] keyWindow];
//screen capture code
UIGraphicsBeginImageContextWithOptions(screenCaptureRect.size, NO, [UIScreen mainScreen].scale);
[viewWhereYouWantToScreenCapture drawViewHierarchyInRect:screenCaptureRect afterScreenUpdates:NO];
UIImage *capturedImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
Run Code Online (Sandbox Code Playgroud)

但它也没有抓住键盘.它看起来像keyWindow不包括键盘视图.

顺便说一下,我需要UIImage最终结果,UIView所以我不能使用其他快照API.

有任何想法,并以最佳表现?

snapshot objective-c uiwindow uikeyboard ios

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