如果我想开发一个客户端 - 服务器设计的iPhone应用程序(iPhone设备作为客户端和ac#服务器),有两个问题:
因此,如果我理解正确的,从客户端向服务器发送诸如"创建新用户"之类的消息的过程如下:1.客户端将创建包含命令"CREATE NEW USER"的JSON/XML和新用户详细信息.2.客户端将通过HTTP请求(作为HTTP请求的主体)发送此JSON/XML,其URL在服务器端映射到ac#方法.3.这将在服务器上触发相应的方法,并在数据库上创建新用户.4.服务器将创建包含重播"CREATED"的JSON/XML,并将通过HTTP响应(作为HTTP响应的主体)将其发送到客户端.那是对的吗?
我正在开发一个消息传递应用程序(类似于WhatsApp),我在实现它的主要功能方面遇到了两难 - 从client1向client2发送消息.
问题是我使用的是集中式服务器设计,客户端使用NSURLConnection向服务器发送消息,服务器不保留和管理打开的套接字,也无法为其中一个客户端发送消息,因此客户端有一个计时器并每隔2秒查询服务器以查看是否有新消息正在等待它们.
这种方法的问题是每2秒查询一次服务器似乎会非常快地杀死电池,所以我想也许不是客户端查询服务器,使用APNS所以当client1向服务器发送消息时,服务器将发送一个将通知推送到client2,然后client2将从服务器获取数据.
这种方法是否适用于需要大量推送通知用途的大型消息应用程序?
messaging chat objective-c instant-messaging apple-push-notifications
我需要在聊天应用程序上执行此操作,以通知客户端有从服务器获取的新数据.
我知道技术上可以使用空载荷(至少在ios 5设备上工作),但Apple可以将其视为滥用服务还是可以这样做?
在ios 4设备上技术上是否可行?
我想让我的导航栏成为带圆角的导航栏(左上角和右上角)
我发现这个代码可以实现:
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条没有角边,它在角落里是透明的,我可以看到它后面的视图.
我不希望它透明,我想在那里放一些黑色.
有谁知道怎么做?
在我的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.
我正在开发的iPhone应用程序中有一个奇怪的问题.我希望我的应用程序仅支持纵向模式,但由于某种原因我无法做到(设备和模拟器).
为了仅支持肖像模式我做了如下:
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)
我刚刚注意到,当我旋转手机时,我收到以下消息:
"不推荐使用两阶段旋转动画.此应用程序应使用更平滑的单级动画."
这是什么意思?
我有一个UITableViewCell带有UIImageas属性的子类.
我想在drawRect中绘制图像,并且效率很高,因为这是一个表视图单元格.
我知道如何绘制图像:
-(void)drawRect:(CGRect)aRect
{
CGRect rect = self.bounds;
[self.image drawInRect:rect];
}
Run Code Online (Sandbox Code Playgroud)
但是,如何绘制圆角图像并保持高效?
顺便说一句我不想使用UIImageView,然后设置图层角半径,因为它接缝会伤害性能.
我使用表格视图来显示书籍列表,其中每个单元格都有一个UILabel显示书籍名称,另一个UILabel显示书籍的作者
我的问题是关于作者的标签.一本书可以有多个作者,我希望它的行为如下:
现在的问题是这个,我希望标签在'+'之前被截断.因此,例如,如果第一个作者名称很长,让我们说'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)
如果我使用中间截断,则无法保证它会在正确的位置截断标签(在'+'之前)
我正在寻找一种尽可能高效的方法,而不会影响表格视图的滚动性能.
我的应用程序支持通用链接,在大多数情况下,它可以正常工作,点击链接可以打开应用程序.
但有时候,我不确定为什么,它会停止工作.
它发生了几次给一个用户,点击链接停止打开应用程序,而是打开网络.
从那一刻起,你无能为力,让它再次发挥作用.
我知道如果你点击状态栏右上角的链接,它会禁用通用链接,从那一刻开始点击链接就会打开网页.要重新启用通用链接,您可以点击Notes App上的链接(例如),然后点击"在MyApp中打开"按钮.
但这似乎并非如此,用户告诉我他没有按状态栏上的链接,更奇怪的是,当试图通过点击Notes App中的链接重新启用通用链接时,"打开" MyApp"按钮丢失了.
什么可能导致这个问题?
我正在寻找适当的方式来拍摄整个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.
有任何想法,并以最佳表现?
objective-c ×9
ios ×3
iphone ×3
autorotate ×1
c# ×1
cglayer ×1
chat ×1
cocoa-touch ×1
core-data ×1
deep-linking ×1
drawrect ×1
inheritance ×1
messaging ×1
networking ×1
snapshot ×1
uiimage ×1
uikeyboard ×1
uilabel ×1
uitableview ×1
uiwindow ×1
xcode ×1