小编Teo*_*Teo的帖子

iOS自动释放池块

我正在阅读苹果关于内存管理的文档,当我开始自动发布池块时,有些东西让我思考.

 Any object sent an autorelease message inside the autorelease pool block is  
 released at the end of the block.
Run Code Online (Sandbox Code Playgroud)

我不确定我是否完全理解这一点.在自动释放池块中创建的任何对象无论如何都会在块的末尾释放,因为这是它的生命周期.为什么当它到达块的末尾时无论如何都要释放它时,你需要调用autorelease?

为了更清楚,我将举例说明我的想法:

   @autoreleasepool {

    MyObject *obj = [[MyObject alloc] init]; // no autorelease call here

    /* use the object*/
   //....
   // in the end it should get deallocated because it's lifespan ends, right?
   // so why do we need to call autorelease then?!
  }
Run Code Online (Sandbox Code Playgroud)

PS:请不要告诉我,因为ARC我们不需要做一些事情,因为ARC会照顾它们.我完全清楚这一点,但我想暂时将ARC放在一边,以了解内存管理的机制.

memory-management autorelease nsautoreleasepool ios objective-c-blocks

17
推荐指数
2
解决办法
2万
查看次数

双引号之间的JavaScript文本

我想使用JavaScript在双引号之间获取文本.我在网上找到了类似title.match(/".*?"/);的东西,但有时我的双引号之间有文字,但有时候没有引号.我所说的是,有时我收到的字符串如下:Neque porro quisquam est qui dolorem ipsum有时字符串如下:Neque "porro quisquam est" qui dolorem ipsum.问题是,当我有包含双引号的文本时,我想要检索它们之间的文本,但是当它们不存在时,我想要整个文本.此外,我观察到string.indexOf("\"")这不起作用,我真的不知道如何处理这个问题.谢谢.

javascript regex text substring

14
推荐指数
3
解决办法
3万
查看次数

Android图像视图重力

如何动态设置重力?

Bitmap bmp;
im = new ImageView (this);
bmp=getbmp(img);
im.setImageBitmap(bmp);  
Run Code Online (Sandbox Code Playgroud)

现在我想将图像放在顶部.我可以android:gravity在main.xml中执行此操作吗?

编辑:

main.xml中

<?xml version="1.0" encoding="utf-8"?>
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent" android:layout_height="fill_parent"
    android:scrollbars="vertical"

    >
</ScrollView>
Run Code Online (Sandbox Code Playgroud)

我有一个框架布局,我添加了图像,然后文本,我希望图像在屏幕的顶部.

FrameLayout fm = new FrameLayout (this);
fm.addView(im);
fm.addView(fin); // fin = the text view
setContentView(fm);
Run Code Online (Sandbox Code Playgroud)

android image view gravity

12
推荐指数
1
解决办法
2万
查看次数

iOS Twitter NSURLErrorDomain代码= -1012

我试图通过在我的应用程序中使用twitter阅读来获取用户的联系方式.我在github上发现这个项目看起来真的很棒.我只遇到一个问题.如果我使用来自Twitter的新应用消费者密钥和消费者密钥代码运行它会给我一个错误:

Error Domain=NSURLErrorDomain Code=-1012 "The operation couldn’t be completed. (NSURLErrorDomain error -1012.)" UserInfo=0x6898e80 {NSErrorFailingURLKey=https://api.twitter.com/oauth/request_token, NSErrorFailingURLStringKey=https://api.twitter.com/oauth/request_token, NSUnderlyingError=0x68980e0 "The operation couldn’t be completed. (kCFErrorDomainCFNetwork error -1012.)"}
Run Code Online (Sandbox Code Playgroud)

控制台中的输出是:

2013-01-16 17:55:24.367 DMTwitterOAuth[3411:c07] current status = Prompt for user data and request token to server
2013-01-16 17:55:24.371 DMTwitterOAuth[3411:c07] current status = Requesting token for current user's auth data...
2013-01-16 17:55:25.433 DMTwitterOAuth[3411:c07] current status = Token received from server
Run Code Online (Sandbox Code Playgroud)

在我得到警报视图后,它立即说它遇到了一个NSURLErrorDomain.

另一方面,如果我使用来自另一个Twitter应用程序的其他代码运行它,它会工作,向我提供有关用户的所有详细信息.我只是无法理解为什么它可以使用某些键,而对于其他键则不然.

twitter nsurlrequest ios nsurlerrordomain

8
推荐指数
1
解决办法
1万
查看次数

Android进度对话框

我的应用程序从互联网上获取一些HTML代码,完成后,将其显示在设备屏幕上.由于这需要大约3-4秒,因此在这段时间屏幕保持黑色,我想使用进度对话框.这是我的代码:

package com.nextlogic.golfnews;



// ALL THE IMPORTS ....

public class Activity1 extends Activity {

    private ProgressDialog progressDialog;
 @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main2);

        progressDialog = ProgressDialog.show(Activity1.this, "", "Loading...");
        new Thread() 
        {
          public void run() 
          {

             try
               {
                sleep(2000);

          // HERE I'VE PUT ALL THE FUNCTIONS THAT WORK FOR ME
 }
    catch (Exception e)
    {
        Log.e("tag",e.getMessage());
    }
// dismiss the progressdialog   
  progressDialog.dismiss();
 }
}.start();
Run Code Online (Sandbox Code Playgroud)

该程序有效但不再显示任何内容.我在logcat中有一个错误:

Only the original thread that created a view hierarchy can touch its views.
Run Code Online (Sandbox Code Playgroud)

请你帮助我好吗 …

android dialog progress

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

iOS键值编码

假设我们有一个person类型的对象,它有一个名为name的属性.

Person *p;
[p setValue:@"John" forKey:@"name"];
Run Code Online (Sandbox Code Playgroud)

这很好用.我想要做的是深入挖掘.假设类人员有另一个名为address的属性,该属性是Address类,并且有一个名为zipcode的字段.

是否有一种更简单的方法来分配这个人的邮政编码?也许更清洁,更清晰的东西?

[[p valueForKey:@"address"] setValue:@"234567" forKey:@"zipcode"];
Run Code Online (Sandbox Code Playgroud)

coding-style key-value ios kvc

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

Android:如何使用后台线程?

我开发了一个应用程序,它从互联网上获取内容,并在设备的屏幕上显示相应的内容.该程序工作得很好,有点慢.加载和显示内容大约需要3-4秒.我想把所有获取内容的代码放在后台线程中,当程序执行这些功能时,我想显示一个进度对话框.你能帮帮我吗?我想特别学习如何将代码放在后台线程中.

我的代码

public class Activity1 extends Activity
{
    private ProgressDialog progressDialog;

    @Override
    public void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        new AsyncTask<Integer, Integer, Boolean>()
        {
            ProgressDialog progressDialog;

            @Override
            protected void onPreExecute()
            {
                /*
                 * This is executed on UI thread before doInBackground(). It is
                 * the perfect place to show the progress dialog.
                 */
                progressDialog = ProgressDialog.show(Activity1.this, "",
                        "Loading...");
            }

            @Override
            protected Boolean doInBackground(Integer... params)
            {
                if (params == null)
                {
                    return false;
                }
                try
                {
                    /*
                     * This is run …
Run Code Online (Sandbox Code Playgroud)

multithreading android background

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

iOS推送风格segue过渡

我想在推送另一个视图控制器时更改导航视图控制器的"从右向左滑动"转换.我在故事板中找到了一个选项,但它似乎不起作用.过渡风格仍然相同.通过单击故事板中的目标视图控制器,我发现了这一点,虽然它看起来像是模式样式segue的过渡:

过渡

所以,我的问题是,是否有可能使推送样式segue过渡看起来不同?如果是这样,怎么样?

navigation styles transition uinavigationcontroller ios

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

IAR Embedded工作台创建库

我想在IAR Embedded Workbench中创建一个简单的库(C/ANSI),然后在另一个项目中使用该库.我在他们的网站上找到了一些文档.虽然我不完全理解它,但我设法让自己成为一个.r90文件,据我所知,这将是图书馆.请注意,我是这个领域的初学者.总之,我想逐步介绍如何创建库,然后如何在另一个项目中导入它.谢谢.

PS:我正在使用IAR Embedded Workbench for AVR,这个版本没有下面的Library选项卡Linker.

c embedded ansi iar workbench

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

iOS7与常量和表达式的比较总是假的

在我的适用于iOS 5和6的应用程序中,我有一个if声明:

NSInputStream *inputStream = [NSInputStream inputStreamWithFileAtPath:sourcePath];
if ([inputStream streamStatus] == NSStreamEventErrorOccurred){
[...]
}
Run Code Online (Sandbox Code Playgroud)

在iOS 7上,我收到以下警告:

 Comparison of constant 'NSStreamEventErrorOccurred' with expression of type 
'NSStreamStatus' (aka 'enum NSStreamStatus') is always false
Run Code Online (Sandbox Code Playgroud)

关于iOS 7关于NSInputstream课程的变化的任何想法?我想知道为什么我现在在iOS7上收到此警告.

comparison objective-c nsinputstream ios

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